1 | # 适用于Amazon S3兼容云存储的Minio JavaScript Library [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io)
|
2 |
|
3 | [![NPM](https://nodei.co/npm/minio.png)](https://nodei.co/npm/minio/)
|
4 |
|
5 | MinIO JavaScript Client SDK提供简单的API来访问任何Amazon S3兼容的对象存储服务。
|
6 |
|
7 | 本快速入门指南将向您展示如何安装客户端SDK并执行示例JavaScript程序。有关API和示例的完整列表,请参阅[JavaScript客户端API参考](https://docs.min.io/docs/javascript-client-api-reference)文档。
|
8 |
|
9 | 本文假设你已经安装了[nodejs](http://nodejs.org/) 。
|
10 |
|
11 | ## 使用NPM下载
|
12 |
|
13 | ```sh
|
14 | npm install --save minio
|
15 | ```
|
16 |
|
17 | ## 下载并安装源码
|
18 |
|
19 | ```sh
|
20 | git clone https://github.com/minio/minio-js
|
21 | cd minio-js
|
22 | npm install
|
23 | npm install -g
|
24 | ```
|
25 |
|
26 | ## 初使化Minio Client
|
27 |
|
28 | 你需要设置5个属性来链接Minio对象存储服务。
|
29 |
|
30 | | 参数 | 描述 |
|
31 | | :------- | :------------ |
|
32 | | endPoint |对象存储服务的URL |
|
33 | |port| TCP/IP端口号。可选值,如果是使用HTTP的话,默认值是`80`;如果使用HTTPS的话,默认值是`443`。|
|
34 | | accessKey | Access key是唯一标识你的账户的用户ID。 |
|
35 | | secretKey | Secret key是你账户的密码。 |
|
36 | |useSSL |true代表使用HTTPS |
|
37 |
|
38 |
|
39 | ```js
|
40 | var Minio = require('minio')
|
41 |
|
42 | var minioClient = new Minio.Client({
|
43 | endPoint: 'play.min.io',
|
44 | port: 9000,
|
45 | useSSL: true,
|
46 | accessKey: 'Q3AM3UQ867SPQQA43P2F',
|
47 | secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
|
48 | });
|
49 | ```
|
50 |
|
51 | ## 示例-文件上传
|
52 |
|
53 | 本示例连接到一个对象存储服务,创建一个存储桶并上传一个文件到存储桶中。
|
54 |
|
55 | 我们在本示例中使用运行在 [https://play.min.io](https://play.min.io) 上的Minio服务,你可以用这个服务来开发和测试。示例中的访问凭据是公开的。
|
56 |
|
57 | #### file-uploader.js
|
58 |
|
59 | ```js
|
60 | var Minio = require('minio')
|
61 |
|
62 | // Instantiate the minio client with the endpoint
|
63 | // and access keys as shown below.
|
64 | var minioClient = new Minio.Client({
|
65 | endPoint: 'play.min.io',
|
66 | port: 9000,
|
67 | useSSL: true,
|
68 | accessKey: 'Q3AM3UQ867SPQQA43P2F',
|
69 | secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
|
70 | });
|
71 |
|
72 | // File that needs to be uploaded.
|
73 | var file = '/tmp/photos-europe.tar'
|
74 |
|
75 | // Make a bucket called europetrip.
|
76 | minioClient.makeBucket('europetrip', 'us-east-1', function(err) {
|
77 | if (err) return console.log(err)
|
78 |
|
79 | console.log('Bucket created successfully in "us-east-1".')
|
80 |
|
81 | var metaData = {
|
82 | 'Content-Type': 'application/octet-stream',
|
83 | 'X-Amz-Meta-Testing': 1234,
|
84 | 'example': 5678
|
85 | }
|
86 | // Using fPutObject API upload your file to the bucket europetrip.
|
87 | minioClient.fPutObject('europetrip', 'photos-europe.tar', file, metaData, function(err, etag) {
|
88 | if (err) return console.log(err)
|
89 | console.log('File uploaded successfully.')
|
90 | });
|
91 | });
|
92 | ```
|
93 |
|
94 | #### 运行file-uploader
|
95 |
|
96 | ```sh
|
97 | node file-uploader.js
|
98 | Bucket created successfully in "us-east-1".
|
99 |
|
100 | mc ls play/europetrip/
|
101 | [2016-05-25 23:49:50 PDT] 17MiB photos-europe.tar
|
102 | ```
|
103 |
|
104 | ## API文档
|
105 |
|
106 | 完整的API文档在这里。
|
107 | * [完整API文档](https://docs.min.io/docs/javascript-client-api-reference)
|
108 |
|
109 | ### API文档 : 操作存储桶
|
110 |
|
111 | * [`makeBucket`](https://docs.min.io/docs/javascript-client-api-reference#makeBucket)
|
112 | * [`listBuckets`](https://docs.min.io/docs/javascript-client-api-reference#listBuckets)
|
113 | * [`bucketExists`](https://docs.min.io/docs/javascript-client-api-reference#bucketExists)
|
114 | * [`removeBucket`](https://docs.min.io/docs/javascript-client-api-reference#removeBucket)
|
115 | * [`listObjects`](https://docs.min.io/docs/javascript-client-api-reference#listObjects)
|
116 | * [`listObjectsV2`](https://docs.min.io/docs/javascript-client-api-reference#listObjectsV2)
|
117 | * [`listIncompleteUploads`](https://docs.min.io/docs/javascript-client-api-reference#listIncompleteUploads)
|
118 |
|
119 | ### API文档 : 操作文件对象
|
120 |
|
121 | * [`fPutObject`](https://docs.min.io/docs/javascript-client-api-reference#fPutObject)
|
122 | * [`fGetObject`](https://docs.min.io/docs/javascript-client-api-reference#fGetObject)
|
123 |
|
124 | ### API文档 : 操作对象
|
125 |
|
126 | * [`getObject`](https://docs.min.io/docs/javascript-client-api-reference#getObject)
|
127 | * [`putObject`](https://docs.min.io/docs/javascript-client-api-reference#putObject)
|
128 | * [`copyObject`](https://docs.min.io/docs/javascript-client-api-reference#copyObject)
|
129 | * [`statObject`](https://docs.min.io/docs/javascript-client-api-reference#statObject)
|
130 | * [`removeObject`](https://docs.min.io/docs/javascript-client-api-reference#removeObject)
|
131 | * [`removeIncompleteUpload`](https://docs.min.io/docs/javascript-client-api-reference#removeIncompleteUpload)
|
132 |
|
133 | ### API文档 : Presigned操作
|
134 |
|
135 | * [`presignedGetObject`](https://docs.min.io/docs/javascript-client-api-reference#presignedGetObject)
|
136 | * [`presignedPutObject`](https://docs.min.io/docs/javascript-client-api-reference#presignedPutObject)
|
137 | * [`presignedPostPolicy`](https://docs.min.io/docs/javascript-client-api-reference#presignedPostPolicy)
|
138 |
|
139 | ### API文档 : 存储桶通知
|
140 |
|
141 | * [`getBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#getBucketNotification)
|
142 | * [`setBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#setBucketNotification)
|
143 | * [`removeAllBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#removeAllBucketNotification)
|
144 | * [`listenBucketNotification`](https://docs.min.io/docs/javascript-client-api-reference#listenBucketNotification) (MinIO Extension)
|
145 |
|
146 | ### API文档 : 存储桶策略
|
147 |
|
148 | * [`getBucketPolicy`](https://docs.min.io/docs/javascript-client-api-reference#getBucketPolicy)
|
149 | * [`setBucketPolicy`](https://docs.min.io/docs/javascript-client-api-reference#setBucketPolicy)
|
150 |
|
151 |
|
152 | ## 完整示例
|
153 |
|
154 | #### 完整示例 : 操作存储桶
|
155 |
|
156 | * [list-buckets.js](https://github.com/minio/minio-js/blob/master/examples/list-buckets.js)
|
157 | * [list-objects.js](https://github.com/minio/minio-js/blob/master/examples/list-objects.js)
|
158 | * [list-objects-v2.js](https://github.com/minio/minio-js/blob/master/examples/list-objects-v2.js)
|
159 | * [bucket-exists.js](https://github.com/minio/minio-js/blob/master/examples/bucket-exists.js)
|
160 | * [make-bucket.js](https://github.com/minio/minio-js/blob/master/examples/make-bucket.js)
|
161 | * [remove-bucket.js](https://github.com/minio/minio-js/blob/master/examples/remove-bucket.js)
|
162 | * [list-incomplete-uploads.js](https://github.com/minio/minio-js/blob/master/examples/list-incomplete-uploads.js)
|
163 |
|
164 | #### 完整示例 : 操作文件对象
|
165 | * [fput-object.js](https://github.com/minio/minio-js/blob/master/examples/fput-object.js)
|
166 | * [fget-object.js](https://github.com/minio/minio-js/blob/master/examples/fget-object.js)
|
167 |
|
168 | #### 完整示例 : 操作对象
|
169 | * [put-object.js](https://github.com/minio/minio-js/blob/master/examples/put-object.js)
|
170 | * [get-object.js](https://github.com/minio/minio-js/blob/master/examples/get-object.js)
|
171 | * [copy-object.js](https://github.com/minio/minio-js/blob/master/examples/copy-object.js)
|
172 | * [get-partialobject.js](https://github.com/minio/minio-js/blob/master/examples/get-partialobject.js)
|
173 | * [remove-object.js](https://github.com/minio/minio-js/blob/master/examples/remove-object.js)
|
174 | * [remove-incomplete-upload.js](https://github.com/minio/minio-js/blob/master/examples/remove-incomplete-upload.js)
|
175 | * [stat-object.js](https://github.com/minio/minio-js/blob/master/examples/stat-object.js)
|
176 |
|
177 | #### 完整示例 : Presigned操作
|
178 | * [presigned-getobject.js](https://github.com/minio/minio-js/blob/master/examples/presigned-getobject.js)
|
179 | * [presigned-putobject.js](https://github.com/minio/minio-js/blob/master/examples/presigned-putobject.js)
|
180 | * [presigned-postpolicy.js](https://github.com/minio/minio-js/blob/master/examples/presigned-postpolicy.js)
|
181 |
|
182 | #### 完整示例 : 存储桶通知
|
183 | * [get-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-notification.js)
|
184 | * [set-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-notification.js)
|
185 | * [remove-all-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/remove-all-bucket-notification.js)
|
186 | * [listen-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/minio/listen-bucket-notification.js) (MinIO Extension)
|
187 |
|
188 | #### 完整示例 : 存储桶策略
|
189 | * [get-bucket-policy.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-policy.js)
|
190 | * [set-bucket-policy.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-policy.js)
|
191 |
|
192 | ## 了解更多
|
193 | * [完整文档](https://docs.min.io)
|
194 | * [MinIO JavaScript Client SDK API文档](https://docs.min.io/docs/javascript-client-api-reference)
|
195 | * [创建属于你的购物APP-完整示例](https://github.com/minio/minio-js-store-app)
|
196 |
|
197 | ## 贡献
|
198 |
|
199 | [贡献者指南](https://github.com/minio/minio-js/blob/master/CONTRIBUTING.md)
|
200 |
|
201 | [![Build Status](https://travis-ci.org/minio/minio-js.svg)](https://travis-ci.org/minio/minio-js)
|
202 | [![Build status](https://ci.appveyor.com/api/projects/status/1d05e6nvxcelmrak?svg=true)](https://ci.appveyor.com/project/harshavardhana/minio-js)
|