-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathreadme-zh-CN.md
305 lines (170 loc) · 11.7 KB
/
readme-zh-CN.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
# EasyAzure
EasyAzure 是一个针对微软 Azure 云平台的 Java 开发公共组件集合。主要提供 Https 认证生成安装, NoSQL(DocumentDB), Storage(Blob, Table, Queue, File) 的支持。
最新版本: `1.1.0-RELEASE`
## 组件简介
- **Azure-Util**: 提供 Java HTTPS 证书生成和安装
- **Azure-NoSQL**: 提供 DocumentDB 操作支持
- **Azure-Storage**: 提供 Blob, Table, Queue, File 对象操作支持
## Maven
```XML
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>azure-nosql</artifactId>
<version>1.1.0-RELEASE</version>
</dependency>
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>azure-storage</artifactId>
<version>1.1.0-RELEASE</version>
</dependency>
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>azure-util</artifactId>
<version>1.1.0-RELEASE</version>
</dependency>
```
## Azure-Util
提供 Java HTTPS 证书生成和安装(`cn.easyproject.azure.util.InstallCert.java`)。
- HTTPS 认证常见问题
```JAVA
PKIX path building failed:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
```
- 使用方法
1. 运行代码,生成对应 cer 文件
```JAVA
InstallCert.installCert("bqf96rv4qj.database.chinacloudapi.cn:443");
InstallCert.installCert("storagedemo.blob.core.chinacloudapi.cn:443","changeit");
InstallCert.installCert("wamsshaclus001rest-hs.chinacloudapp.cn");
InstallCert.installCert("wamsprodglobal001acs.accesscontrol.chinacloudapi.cn","changeit");
InstallCert.installCert("nosqldemo.documents.azure.cn");
```
从控制台获得输出的待执行命令:
```
keytool -importcert -noprompt -alias bqf96rv4qj.database.chinacloudapi.cn -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security/jssecacerts" -storepass changeit -file bqf96rv4qj.database.chinacloudapi.cn.cer
keytool -importcert -noprompt -alias storagedemo.blob.core.chinacloudapi.cn -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security/jssecacerts" -storepass changeit -file storagedemo.blob.core.chinacloudapi.cn.cer
keytool -importcert -noprompt -alias wamsshaclus001rest-hs.chinacloudapp.cn -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security/jssecacerts" -storepass changeit -file wamsshaclus001rest-hs.chinacloudapp.cn.cer
keytool -importcert -noprompt -alias wamsprodglobal001acs.accesscontrol.windows.net -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security/jssecacerts" -storepass changeit -file wamsprodglobal001acs.accesscontrol.windows.net.cer
keytool -importcert -noprompt -alias nosqldemo.documents.azure.cn -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security/jssecacerts" -storepass changeit -file nosqldemo.documents.azure.cn.cer
```
2. 拷贝执行命令,使用管理员身份执行(`administrator/sudo`)
## Azure-NoSQL
提供 `DocumentDB` 操作支持(`cn.easyproject.azure.documentdb.DocumentDBUtil`)。
```JAVA
create(Object pojoObject, DocumentClient documentClient, String databaseId, String collectionId)
createCollection(DocumentClient documentClient, String databaseId, String collectionId, boolean deleteExists)
createDB(DocumentClient documentClient, String databaseId, boolean deleteExists)
delete(DocumentClient documentClient, Document document)
deleteDB(DocumentClient documentClient, String databaseId)
deleteQueryDocuments(DocumentClient documentClient, String databaseId, String collectionId, String query)
query(DocumentClient documentClient, String databaseId, String collectionId, String query)
replace(DocumentClient documentClient, Document document, Object newPojoObject)
```
## Azure-Storage
提供 `Blob`, `Table`, `Queue`, `File` 对象操作支持。
```JAVA
/*
* Blob
*/
blobClientCreate(String connectionString blobName)
blobContainerCreate(CloudBlobClientserviceClient, String containerName)
blobDelete(CloudBlobClientserviceClient, String containerName, String blobName)
blobDelete(CloudBlobContainer cloudBlobContainer, String blobName)
blobDeleteContainer(CloudBlobClientserviceClient, String containerName)
blobDownload(CloudBlobClientserviceClient, String containerName, String blobName, File destinationFile)
blobDownload(CloudBlobContainer cloudBlobContainer, String blobName, File destinationFile)
blobSetPublic(CloudBlobClientserviceClient, String containerName)
blobSetPublic(CloudBlobContainer)
blobUpload(CloudBlobClientserviceClient, String containerName, String blobName, File destinationFile)
blobUpload(CloudBlobContainer cloudBlobContainer, String blobName, File destinationFile)
/*
* File
*/
fileClientCreate(String connectionString)
fileCreateDirectory(CloudFileClient fileClient, String shareName, String fileName)
fileCreateDirectory(CloudFileShare share, String directioyName)
fileDelete(CloudFileClient fileClient, String shareName, String fileName)
fileDelete(CloudFileClient fileClient, String shareName, String filePath, String fileName)
fileDelete(CloudFileShare share, String directioyName)
fileDelete(CloudFileShare share, String directioyName, String fileName)
fileDeleteShare(CloudFileShare share, String directioyName)
fileDirectoryDelete(CloudFileClient fileClient, String shareName, String fileName)
fileDirectoryDelete(CloudFileShare share, String directioyName)
fileDownload(CloudFileClient fileClient, String shareName, String fileName)
fileDownload(CloudFileClient fileClient, String shareName, String filePath, String fileName)
fileDownload(CloudFileShare share, String directioyName)
fileDownload(CloudFileShare share, String directioyName, String fileName)
fileShareCreate(CloudFileShare share, String directioyName)
fileUpload(CloudFileClient fileClient, String shareName, String filePath, String fileName)
fileUpload(CloudFileClient fileClient, String shareName, String directory, String filePath, String fileName)
fileUpload(CloudFileShare share, String directioyName, String fileName)
fileUpload(CloudFileShare share, String directioyName, String filePath, String fileName)
/*
* Queue
*/
queueAddMessage(CloudQueue queue, String)
queueAddMessage(CloudQueue queue, String message, final int timeToLiveInSeconds,final int initialVisibilityDelayInSeconds)
queueAddMessage(CloudQueueClient queueClient, String queueName, String)
queueAddMessage(CloudQueueClient queueClient, String queueName, String message, final int timeToLiveInSeconds,final int initialVisibilityDelayInSeconds)
queueClientCreate(String connectionString)
queueCreate(CloudQueueClient queueClient, String queueName)
queueDelete(CloudQueue queue)
queueDelete(CloudQueueClient queueClient, String queueName)
queueGetApproximateMessageCount(CloudQueue queue)
queueGetApproximateMessageCount(CloudQueueClient queueClient, String queueName)
queueModify(CloudQueue queue, int maxNumberOfMessageToPeek, String originMessage,String newMessage, final int visibilityTimeoutInSeconds)
queueModify(CloudQueueClient queueClient, String queueName, int maxNumberOfMessageToPeek, String originMessage,String newMessage, final int visibilityTimeoutInSeconds)
queuePeekMessage(CloudQueue queue)
queuePeekMessage(CloudQueueClient queueClient, String queueName)
queueRetrieveThenDelete(CloudQueue queue)
queueRetrieveThenDelete(CloudQueueClient queueClient, String queueName)
/*
* Table
*/
tableBatchInsertOrReplace(CloudTable cloudTable, List<TableEntity> tableEntites)
tableBatchInsertOrReplace(CloudTableClient tableClient, String tableName, List<TableEntity> tableEntites)
tableClientCreate(String connectionString)
tableCreate(CloudTableClient tableClient, String tableName)
tableDelete(CloudTable cloudTable, final Class<? extends TableEntity> clazzType, String partitionKey, String rowKey)
tableDelete(CloudTable cloudTable, TableEntity entity)
tableDelete(CloudTableClient tableClient, String tableName, final Class<? extends TableEntity> clazzType, String partitionKey, String rowKey)
tableInsertOrMerge(CloudTable cloudTable, TableEntity entity)
tableInsertOrMerge(CloudTableClient tableClient, String tableName, TableEntity entity)
tableInsertOrReplace(CloudTable cloudTable, TableEntity entity)
tableInsertOrReplace(CloudTableClient tableClient, String tableName, TableEntity entity)
tablePartitionQuery(CloudTable cloudTable, String partitionKey, String partitionName, Class<T> clazzType)
tablePartitionQuery(CloudTable cloudTable, String partitionKey, String partitionName, Class<T> clazzType, String)
tablePartitionQuery(CloudTableClient tableClient, String tableName, String partitionKey, String partitionName, Class<T> clazzType)
tablePartitionQuery(CloudTableClient tableClient, String tableName, String partitionKey, String partitionName, Class<T> clazzType, String queryComparisons)
tableProjectionQuery(CloudTable cloudTable, final String[] columns, final Class<? extends TableEntity> clazzType, EntityResolver<R> resolver)
tableProjectionQuery(CloudTableClient cloudTableClient, String tableName, final String[] columns, final Class<? extends TableEntity> clazzType, EntityResolver<R> resolver)
tableProjectionQueryResultArrays(CloudTable cloudTable, final String[] columns, final Class<? extends TableEntity> clazzType)
tableProjectionQueryResultArrays(CloudTableClient cloudTableClient, String tableName, final String[] columns, final Class<? extends TableEntity> clazzType)
tableProjectionQueryResultLists(CloudTable cloudTable, final String[] columns, final Class<? extends TableEntity> clazzType)
tableProjectionQueryResultLists(CloudTableClient cloudTableClient, String tableName, final String[] columns, final Class<? extends TableEntity> clazzType)
tableProjectionQueryResultMaps(CloudTable cloudTable, final String[] columns, final Class<? extends TableEntity> clazzType)
tableProjectionQueryResultMaps(CloudTableClient cloudTableClient, String tableName, final String[] columns, final Class<? extends TableEntity> clazzType)
tableQueryByCombinedFilter(CloudTable cloudTable, Class<T> clazzType, String combinedFilter)
tableQueryByCombinedFilter(CloudTableClient cloudTableClient, String tableName, Class<T> clazzType, String combinedFilter)
tableQueryOneEntity(CloudTable cloudTable, Class<T> clazzType, String partitionKey, String rowKey)
tableQueryOneEntity(CloudTableClient tableClient, String tableName, Class<T> clazzType, String partitionKey, String rowKey)
tableReplaceEntity(CloudTable cloudTable, TableEntity entity)
tableReplaceEntity(CloudTableClient tableClient, String tableName, TableEntity entity)
```
## END
### [官方主页](http://www.easyproject.cn/easyazure/zh-cn/index.jsp '官方主页')
[留言评论](http://www.easyproject.cn/easyazure/zh-cn/index.jsp#donation '留言评论')
如果您有更好意见,建议或想法,请联系我。
### [The official home page](http://www.easyproject.cn/easyazure/en/index.jsp 'The official home page')
[Comments](http://www.easyproject.cn/easyazure/en/index.jsp#donation 'Comments')
If you have more comments, suggestions or ideas, please contact me.
Email:<[email protected]>
[http://www.easyproject.cn](http://www.easyproject.cn "EasyProject Home")
**支付宝钱包扫一扫捐助:**
我们相信,每个人的点滴贡献,都将是推动产生更多、更好免费开源产品的一大步。
**感谢慷慨捐助,以支持服务器运行和鼓励更多社区成员。**
<img alt="支付宝钱包扫一扫捐助" src="http://www.easyproject.cn/images/s.png" title="支付宝钱包扫一扫捐助" height="256" width="256"></img>
We believe that the contribution of each bit by bit, will be driven to produce more and better free and open source products a big step.
**Thank you donation to support the server running and encourage more community members.**
[![PayPal](http://www.easyproject.cn/images/paypaldonation5.jpg)](https://www.paypal.me/easyproject/10 "Make payments with PayPal - it's fast, free and secure!")