UNPKG

9.05 kBMarkdownView Raw
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
5MinIO 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
14npm install --save minio
15```
16
17## 下载并安装源码
18
19```sh
20git clone https://github.com/minio/minio-js
21cd minio-js
22npm install
23npm 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
40var Minio = require('minio')
41
42var 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
60var Minio = require('minio')
61
62// Instantiate the minio client with the endpoint
63// and access keys as shown below.
64var 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.
73var file = '/tmp/photos-europe.tar'
74
75// Make a bucket called europetrip.
76minioClient.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
97node file-uploader.js
98Bucket created successfully in "us-east-1".
99
100mc 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)