Comparing version 3.0.0 to 3.1.0
@@ -27,2 +27,3 @@ /* | ||
exports.isVirtualHostStyle = isVirtualHostStyle; | ||
exports.isValidIP = isValidIP; | ||
exports.isValidEndpoint = isValidEndpoint; | ||
@@ -88,6 +89,6 @@ exports.isValidDomain = isValidDomain; | ||
// isAmazonEndpoint - true if endpoint is 's3.amazonaws.com'. | ||
// isAmazonEndpoint - true if endpoint is 's3.amazonaws.com' or 's3.cn-north-1.amazonaws.com.cn' | ||
function isAmazonEndpoint(endpoint) { | ||
return endpoint === 's3.amazonaws.com'; | ||
return endpoint === 's3.amazonaws.com' || endpoint === 's3.cn-north-1.amazonaws.com.cn'; | ||
} | ||
@@ -108,10 +109,16 @@ | ||
var ipv4Regex = /^(\d{1,3}\.){3,3}\d{1,3}$/; | ||
function isValidIP(ip) { | ||
return ipv4Regex.test(ip); | ||
} | ||
// isValidEndpoint - true if endpoint is valid domain. | ||
function isValidEndpoint(endpoint) { | ||
if (!isValidDomain(endpoint)) { | ||
if (!isValidDomain(endpoint) && !isValidIP(endpoint)) { | ||
return false; | ||
} | ||
// Endpoint matches amazon, make sure its 's3.amazonaws.com' | ||
if (endpoint.match('.amazonaws.com$')) { | ||
if (endpoint.match('.amazonaws.com$') || endpoint.match('.amazonaws.com.cn$')) { | ||
if (!isAmazonEndpoint(endpoint)) { | ||
@@ -121,3 +128,3 @@ return false; | ||
} | ||
// Returning true for all other cases. | ||
// Return true. | ||
return true; | ||
@@ -124,0 +131,0 @@ } |
@@ -195,3 +195,3 @@ /* | ||
function NotificationPoller(client, bucketName, notificationARN) { | ||
function NotificationPoller(client, bucketName, prefix, suffix, events) { | ||
_classCallCheck(this, NotificationPoller); | ||
@@ -203,3 +203,5 @@ | ||
this.bucketName = bucketName; | ||
this.notificationARN = notificationARN; | ||
this.prefix = prefix; | ||
this.suffix = suffix; | ||
this.events = events; | ||
@@ -238,4 +240,22 @@ this.ending = false; | ||
var method = 'GET'; | ||
var query = _querystring2['default'].stringify({ notificationARN: this.notificationARN }); | ||
var queries = []; | ||
if (this.prefix) { | ||
var prefix = (0, _helpers.uriEscape)(this.prefix); | ||
queries.push('prefix=' + prefix); | ||
} | ||
if (this.suffix) { | ||
var suffix = (0, _helpers.uriEscape)(this.suffix); | ||
queries.push('suffix=' + suffix); | ||
} | ||
if (this.events) { | ||
this.events.forEach(function (s3event) { | ||
return queries.push('events=' + (0, _helpers.uriEscape)(s3event)); | ||
}); | ||
} | ||
queries.sort(); | ||
var query = ''; | ||
if (queries.length > 0) { | ||
query = '' + queries.join('&'); | ||
} | ||
this.client.makeRequest({ method: method, bucketName: this.bucketName, query: query }, '', 200, '', function (e, response) { | ||
@@ -242,0 +262,0 @@ if (e) return _this2.emit('error', e); |
@@ -29,5 +29,8 @@ /* | ||
'us-east-1': 's3.amazonaws.com', | ||
'us-east-2': 's3-us-east-2.amazonaws.com', | ||
'us-west-1': 's3-us-west-1.amazonaws.com', | ||
'us-west-2': 's3-us-west-2.amazonaws.com', | ||
'ca-central-1': 's3.ca-central-1.amazonaws.com', | ||
'eu-west-1': 's3-eu-west-1.amazonaws.com', | ||
'eu-west-2': 's3-eu-west-2.amazonaws.com', | ||
'sa-east-1': 's3-sa-east-1.amazonaws.com', | ||
@@ -38,3 +41,4 @@ 'eu-central-1': 's3-eu-central-1.amazonaws.com', | ||
'ap-southeast-2': 's3-ap-southeast-2.amazonaws.com', | ||
'ap-northeast-1': 's3-ap-northeast-1.amazonaws.com' | ||
'ap-northeast-1': 's3-ap-northeast-1.amazonaws.com', | ||
'cn-north-1': 's3.cn-north-1.amazonaws.com.cn' | ||
// Add new endpoints here. | ||
@@ -41,0 +45,0 @@ }; |
@@ -24,4 +24,4 @@ /* | ||
exports.getErrorTransformer = getErrorTransformer; | ||
exports.getSizeLimiter = getSizeLimiter; | ||
exports.getHashSummer = getHashSummer; | ||
exports.getCopyObjectTransformer = getCopyObjectTransformer; | ||
exports.getListBucketTransformer = getListBucketTransformer; | ||
@@ -162,28 +162,2 @@ exports.getListMultipartTransformer = getListMultipartTransformer; | ||
// Makes sure that only size number of bytes go through this stream | ||
function getSizeLimiter(size, stream, chunker) { | ||
var sizeRemaining = size; | ||
return _through22['default'].obj(function (chunk, enc, cb) { | ||
var length = Math.min(chunk.length, sizeRemaining); | ||
// We should read only till 'size' | ||
if (length < chunk.length) chunk = chunk.slice(0, length); | ||
this.push(chunk); | ||
sizeRemaining -= length; | ||
if (sizeRemaining === 0) { | ||
// Unpipe so that the streams do not send us more data | ||
stream.unpipe(); | ||
chunker.unpipe(); | ||
this.push(null); | ||
} | ||
cb(); | ||
}, function (cb) { | ||
if (sizeRemaining !== 0) { | ||
return cb(new errors.IncorrectSizeError('size of the input stream is not equal to the expected size(' + size + ')')); | ||
} | ||
this.push(null); | ||
cb(); | ||
}); | ||
} | ||
// A through stream that calculates md5sum and sha256sum | ||
@@ -213,2 +187,8 @@ | ||
// Parses CopyObject response. | ||
function getCopyObjectTransformer() { | ||
return getConcater(xmlParsers.parseCopyObject); | ||
} | ||
// Parses listBuckets response. | ||
@@ -215,0 +195,0 @@ |
@@ -23,2 +23,3 @@ /* | ||
exports.parseError = parseError; | ||
exports.parseCopyObject = parseCopyObject; | ||
exports.parseListMultipart = parseListMultipart; | ||
@@ -104,2 +105,16 @@ exports.parseListBucket = parseListBucket; | ||
// parse XML response for copy object | ||
function parseCopyObject(xml) { | ||
var result = { | ||
etag: "", | ||
lastModified: "" | ||
}; | ||
var xmlobj = parseXml(xml); | ||
if (xmlobj.ETag) result.etag = xmlobj.ETag[0].replace(/^\"/g, '').replace(/\"$/g, '').replace(/^"/g, '').replace(/"$/g, '').replace(/^"/g, '').replace(/^"$/g, ''); | ||
if (xmlobj.LastModified) result.lastModified = new Date(xmlobj.LastModified[0]); | ||
return result; | ||
} | ||
// parse XML response for listing in-progress multipart uploads | ||
@@ -106,0 +121,0 @@ |
# JavaScript Client API Reference [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Minio/minio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
## Initialize Minio Client object. | ||
## Initialize Minio Client object. | ||
@@ -29,8 +29,7 @@ ## Minio | ||
endPoint: 's3.amazonaws.com', | ||
accessKey: 'YOUR-ACCESSKEYID', | ||
secretKey: 'YOUR-SECRETACCESSKEY' | ||
accessKey: 'YOUR-ACCESSKEYID', | ||
secretKey: 'YOUR-SECRETACCESSKEY' | ||
}) | ||
``` | ||
| Bucket operations | Object operations | Presigned operations | Bucket Policy & Notification operations | | ||
@@ -41,8 +40,9 @@ | ------------- |-------------| -----| ----- | | ||
| [`bucketExists`](#bucketExists) | [`fGetObject`](#fGetObject) | [`presignedPostPolicy`](#presignedPostPolicy) | [`removeAllBucketNotification`](#removeAllBucketNotification) | | ||
| [`removeBucket`](#removeBucket) | [`putObject`](#putObject) | | [`getBucketPolicy`](#getBucketPolicy) | [`listenBucketNotification`](#listenBucketNotification) | | ||
| [`removeBucket`](#removeBucket) | [`putObject`](#putObject) | | [`getBucketPolicy`](#getBucketPolicy) | | | ||
| [`listObjects`](#listObjects) | [`fPutObject`](#fPutObject) | | [`setBucketPolicy`](#setBucketPolicy) | ||
| [`listObjectsV2`](#listObjectsV2) | [`statObject`](#statObject) | | ||
| [`listIncompleteUploads`](#listIncompleteUploads) | | | ||
| [`listObjectsV2`](#listObjectsV2) | [`copyObject`](#copyObject) | | [`listenBucketNotification`](#listenBucketNotification)| | ||
| [`listIncompleteUploads`](#listIncompleteUploads) | [`statObject`](#statObject) | | ||
| | [`removeObject`](#removeObject) | | ||
| | [`removeIncompleteUpload`](#removeIncompleteUpload) | | ||
@@ -70,3 +70,3 @@ | ||
| `port` | _number_ | TCP/IP port number. This input is optional. Default value set to 80 for HTTP and 443 for HTTPs. | | ||
| `accessKey` | _string_ |accessKey is like user-id that uniquely identifies your account. | | ||
| `accessKey` | _string_ |accessKey is like user-id that uniquely identifies your account. | | ||
|`secretKey` | _string_ | secretKey is the password to your account.| | ||
@@ -124,3 +124,3 @@ |`secure` | _bool_ |If set to true, https is used instead of http. Default is https if not set. | | ||
|---|---|---| | ||
|`bucketName` | _string_ | Name of the bucket. | | ||
|`bucketName` | _string_ | Name of the bucket. | | ||
| `region` | _string_ | Default value is us-east-1 Region where the bucket is created. Valid values are listed below: | | ||
@@ -131,7 +131,8 @@ | | |us-east-1 | | ||
| | |eu-west-1 | | ||
| | | eu-central-1| | ||
| | | ap-southeast-1| | ||
| | | ap-northeast-1| | ||
| | | ap-southeast-2| | ||
| | | sa-east-1| | ||
| | |eu-central-1| | ||
| | |ap-southeast-1| | ||
| | |ap-northeast-1| | ||
| | |ap-southeast-2| | ||
| | |sa-east-1| | ||
| | |cn-north-1| | ||
|`callback(err)` |_function_ | Callback function with `err` as the error argument. `err` is null if the bucket is successfully created. | | ||
@@ -172,3 +173,3 @@ | ||
|`bucket.name` | _string_ |bucket name | | ||
|`bucket.creationDate`| _Date_ |date when bucket was created. | | ||
|`bucket.creationDate`| _Date_ |date when bucket was created. | | ||
@@ -500,3 +501,3 @@ | ||
| `stream` | _Stream_ |Readable stream. | | ||
|`size` | _number_ | Size of the object. | | ||
|`size` | _number_ | Size of the object (optional). | | ||
|`contentType` | _string_ | Content-Type of the object (optional, default `application/octet-stream`). | | ||
@@ -519,3 +520,3 @@ | `callback(err, etag)` | _function_ | Non-null `err` indicates error, `etag` _string_ is the etag of the object uploaded.| | ||
} | ||
minioClient.putObject('mybucket', '40mbfile', fileStream, stats.size, 'application/octet-stream', function(err, etag) { | ||
minioClient.putObject('mybucket', '40mbfile', fileStream, stats.size, function(err, etag) { | ||
return console.log(err, etag) // err should be null | ||
@@ -547,3 +548,3 @@ }) | ||
var buffer = 'Hello World' | ||
minioClient.putObject('mybucket', 'hello-file', buffer, 'application/octet-stream', function(err, etag) { | ||
minioClient.putObject('mybucket', 'hello-file', buffer, function(err, etag) { | ||
return console.log(err, etag) // err should be null | ||
@@ -583,2 +584,35 @@ }) | ||
<a name="copyObject"></a> | ||
### copyObject(bucketName, objectName, sourceObject, conditions, callback) | ||
Copy a source object into a new object in the specied bucket. | ||
__Parameters__ | ||
| Param | Type | Description | | ||
|---|---|---| | ||
| `bucketName` | _string_ | Name of the bucket. | | ||
|`objectName` |_string_ | Name of the object. | | ||
| `sourceObject` | _string_ | Path of the file to be copied. | | ||
| `conditions` | _CopyConditions_ | Conditions to be satisfied before allowing object copy. | | ||
| `callback(err, {etag, lastModified})` | _function_ | Non-null `err` indicates error, `etag` _string_ and lastModified _Date_ are the etag and the last modified date of the object newly copied. | | ||
__Example__ | ||
```js | ||
var conds = new Minio.CopyConditions() | ||
conds.setMatchETag('bd891862ea3e22c93ed53a098218791d') | ||
minioClient.copyObject('mybucket', 'newobject', '/mybucket/srcobject', conds, function(e, data) { | ||
if (e) { | ||
return console.log(e) | ||
} | ||
console.log("Successfully copied the object:") | ||
console.log("etag = " + data.etag + ", lastModified = " + data.lastModified) | ||
}) | ||
``` | ||
<a name="statObject"></a> | ||
@@ -921,6 +955,8 @@ ### statObject(bucketName, objectName, callback) | ||
<a name="listenBucketNotification"></a> | ||
### listenBucketNotification(bucketName, notificationARN) | ||
### listenBucketNotification(bucketName, prefix, suffix, events) | ||
Listen for notifications on a bucket, using the given notification ARN. The bucket | ||
must already have a notification configuration set. | ||
Listen for notifications on a bucket. Additionally one can provider | ||
filters for prefix, suffix and events. There is no prior set bucket notification | ||
needed to use this API. This is an Minio extension API where unique identifiers | ||
are regitered and unregistered by the server automatically based on incoming requests. | ||
@@ -936,17 +972,13 @@ Returns an `EventEmitter`, which will emit a `notification` event carrying the record. | ||
| `bucketName` | _string_ | Name of the bucket | | ||
| `notificationARN` | _string_ | Amazon Resource Name, built using `Minio.buildARN`. | | ||
| `prefix` | _string_ | Object key prefix to filter notifications for. | | ||
| `suffix` | _string_ | Object key suffix to filter notifications for. | | ||
| `events` | _Array_ | Enables notifications for specific event types. | | ||
See [here](../examples/minio/listen-bucket-notification.js) for a full example. | ||
See [here](https://github.com/minio/minio-js/blob/master/examples/minio/listen-bucket-notification.js) for a full example. | ||
```js | ||
// 'us-east-1' may have to be replaced with your bucket region (use `getBucketRegion`). | ||
// '123' is an account ID, which need not be changed. | ||
var arn = Minio.buildARN('minio', 'sns', 'us-east-1', '123', 'listen') | ||
var listener = minioClient.listenBucketNotification('my-bucketname', arn) | ||
var listener = minioClient.listenBucketNotification('my-bucketname', 'photos/', '.jpg', ['s3:ObjectCreated:*']) | ||
listener.on('notification', function(record) { | ||
// For example: 's3:ObjectCreated:Put event occurred (2016-08-23T18:26:07.214Z)' | ||
console.log('%s event occurred (%s)', record.eventName, record.eventTime) | ||
listener.stop() | ||
@@ -1016,2 +1048,1 @@ }) | ||
- [Build your own Shopping App Example](https://docs.minio.io/docs/javascript-shopping-app) | ||
@@ -28,58 +28,35 @@ /* | ||
s3Client.getBucketRegion('bucket1', (err, location) => { | ||
// Build an ARN. `minio`, `sns`, and `listen` are all standard and need | ||
// not be changed. Only `location` must be loaded, and the account ID | ||
// (`123`) doesn't matter. | ||
let arn = Minio.buildARN('minio', 'sns', location, '123', 'listen') | ||
// Start listening for notifications on the bucket, using our arn. | ||
let poller = s3Client.listenBucketNotification('bucket1', 'photos/', '.jpg', ['s3:ObjectCreated:*']) | ||
// Notification will be emitted every time a new notification is received. | ||
// For object creation, here is a sample record: | ||
// For this example, we'll listen for object creations. | ||
let topic = new Minio.TopicConfig(arn) | ||
topic.addEvent(Minio.ObjectCreatedAll) | ||
// { eventVersion: '2.0', | ||
// eventSource: 'aws:s3', | ||
// awsRegion: 'us-east-1', | ||
// eventTime: '2016-08-23T18:26:07.214Z', | ||
// eventName: 's3:ObjectCreated:Put', | ||
// userIdentity: { principalId: 'minio' }, | ||
// requestParameters: { sourceIPAddress: '...' }, | ||
// responseElements: {}, | ||
// s3: | ||
// { s3SchemaVersion: '1.0', | ||
// configurationId: 'Config', | ||
// bucket: | ||
// { name: 'bucket1', | ||
// ownerIdentity: [Object], | ||
// arn: 'arn:aws:s3:::bucket1' }, | ||
// object: { key: 'photos%2Fobject.jpg', size: 10, sequencer: '...' } } } | ||
poller.on('notification', record => { | ||
console.log('New object: %s/%s (size: %d)', record.s3.bucket.name, | ||
record.s3.object.key, record.s3.object.size) | ||
// Create a new notification config. This will allow us to tell s3 to notify | ||
// us when our events happen. | ||
let bucketNotification = new Minio.NotificationConfig(); | ||
bucketNotification.add(topic) | ||
// Now that we've received our notification, we can cancel the listener. | ||
// We could leave it open if we wanted to continue to receive notifications. | ||
poller.stop() | ||
}) | ||
// We need to update the bucket notification config in order to receive updates. | ||
s3Client.setBucketNotification('bucket1', bucketNotification, function(err) { | ||
if (err) throw err | ||
// Start listening for notifications on the bucket, using our arn. | ||
let poller = s3Client.listenBucketNotification('bucket1', arn) | ||
// Notification will be emitted every time a new notification is received. | ||
// For object creation, here is a sample record: | ||
// { eventVersion: '2.0', | ||
// eventSource: 'aws:s3', | ||
// awsRegion: 'us-east-1', | ||
// eventTime: '2016-08-23T18:26:07.214Z', | ||
// eventName: 's3:ObjectCreated:Put', | ||
// userIdentity: { principalId: 'minio' }, | ||
// requestParameters: { sourceIPAddress: '...' }, | ||
// responseElements: {}, | ||
// s3: | ||
// { s3SchemaVersion: '1.0', | ||
// configurationId: 'Config', | ||
// bucket: | ||
// { name: 'bucket1', | ||
// ownerIdentity: [Object], | ||
// arn: 'arn:aws:s3:::bucket1' }, | ||
// object: { key: 'object', size: 10, sequencer: '...' } } } | ||
poller.on('notification', record => { | ||
console.log('New object: %s/%s (size: %d)', record.s3.bucket.name, | ||
record.s3.object.key, record.s3.object.size) | ||
// Now that we've received our notification, we can cancel the listener. | ||
// We could leave it open if we wanted to continue to receive notifications. | ||
poller.stop() | ||
}) | ||
// Create an object - this should trigger a notification. | ||
s3Client.putObject('bucket1', 'file.jpg', 'stringdata', (err, etag) => { | ||
if (err) throw err | ||
}) | ||
}) | ||
// Create an object - this should trigger a notification. | ||
s3Client.putObject('bucket1', 'file.jpg', 'stringdata', (err, etag) => { | ||
if (err) throw err | ||
}) |
{ | ||
"name": "minio", | ||
"version": "3.0.0", | ||
"version": "3.1.0", | ||
"description": "S3 Compatible Cloud Storage client", | ||
@@ -5,0 +5,0 @@ "main": "./dist/main/minio.js", |
@@ -16,3 +16,3 @@ # Minio JavaScript Library for Amazon S3 Compatible Cloud Storage [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Minio/minio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
$ npm install --save minio | ||
npm install --save minio@3.1.0 | ||
@@ -25,6 +25,6 @@ ``` | ||
$ git clone https://github.com/minio/minio-js | ||
$ cd minio-js | ||
$ npm install | ||
$ npm install -g | ||
git clone https://github.com/minio/minio-js | ||
cd minio-js | ||
npm install | ||
npm install -g | ||
@@ -39,7 +39,7 @@ | ||
| Params | Description | | ||
| :------- | :------------ | | ||
| endPoint | URL to object storage service. | | ||
| Params | Description | | ||
| :------- | :------------ | | ||
| endPoint | URL to object storage service. | | ||
|port| TCP/IP port number. This input is optional. Default value set to ``80`` for HTTP and ``443`` for HTTPs.| | ||
| accessKey | Access key is like user ID that uniquely identifies your account. | | ||
| accessKey | Access key is like user ID that uniquely identifies your account. | | ||
| secretKey | Secret key is the password to your account. | | ||
@@ -63,5 +63,21 @@ |secure |Set this value to 'true' to enable secure (HTTPS) access | | ||
If you are using minio-js version [2X](https://github.com/minio/minio-js/tree/release-2.0), Initialize Minio Client as below. | ||
```js | ||
var Minio = require('minio') | ||
var minioClient = new Minio({ | ||
endPoint: 'play.minio.io', | ||
port: 9000, | ||
secure: true, | ||
accessKey: 'Q3AM3UQ867SPQQA43P2F', | ||
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG' | ||
}); | ||
``` | ||
## Quick Start Example - File Uploader | ||
This example program connects to an object storage server, makes a bucket on the server and then uploads a file to the bucket. | ||
This example program connects to an object storage server, makes a bucket on the server and then uploads a file to the bucket. | ||
@@ -76,3 +92,3 @@ We will use the Minio server running at [https://play.minio.io:9000](https://play.minio.io:9000) in this example. Feel free to use this service for testing and development. Access credentials shown in this example are open to the public. | ||
// Instantiate the minio client with the endpoint | ||
// Instantiate the minio client with the endpoint | ||
// and access keys as shown below. | ||
@@ -95,4 +111,4 @@ var minioClient = new Minio.Client({ | ||
console.log('Bucket created successfully in "us-east-1".') | ||
// Using fPutObject API upload your file to the bucket europetrip. | ||
// Using fPutObject API upload your file to the bucket europetrip. | ||
minioClient.fPutObject('europetrip', 'photos-europe.tar', file, 'application/octet-stream', function(err, etag) { | ||
@@ -110,6 +126,6 @@ if (err) return console.log(err) | ||
$ node file-uploader.js | ||
node file-uploader.js | ||
Bucket created successfully in "us-east-1". | ||
$ mc ls play/europetrip/ | ||
mc ls play/europetrip/ | ||
[2016-05-25 23:49:50 PDT] 17MiB photos-europe.tar | ||
@@ -122,3 +138,3 @@ | ||
The full API Reference is available here. | ||
* [Complete API Reference](https://docs.minio.io/docs/javascript-client-api-reference) | ||
@@ -133,2 +149,3 @@ | ||
* [`listObjects`](https://docs.minio.io/docs/javascript-client-api-reference#listObjects) | ||
* [`listObjectsV2`](https://docs.minio.io/docs/javascript-client-api-reference#listObjectsV2) | ||
* [`listIncompleteUploads`](https://docs.minio.io/docs/javascript-client-api-reference#listIncompleteUploads) | ||
@@ -145,2 +162,3 @@ | ||
* [`putObject`](https://docs.minio.io/docs/javascript-client-api-reference#putObject) | ||
* [`copyObject`](https://docs.minio.io/docs/javascript-client-api-reference#copyObject) | ||
* [`statObject`](https://docs.minio.io/docs/javascript-client-api-reference#statObject) | ||
@@ -156,3 +174,15 @@ * [`removeObject`](https://docs.minio.io/docs/javascript-client-api-reference#removeObjec) | ||
### API Reference : Bucket Notification Operations | ||
* [`getBucketNotification`](https://docs.minio.io/docs/javascript-client-api-reference#getBucketNotification) | ||
* [`setBucketNotification`](https://docs.minio.io/docs/javascript-client-api-reference#setBucketNotification) | ||
* [`removeAllBucketNotification`](https://docs.minio.io/docs/javascript-client-api-reference#removeAllBucketNotification) | ||
* [`listenBucketNotification`](https://docs.minio.io/docs/javascript-client-api-reference#listenBucketNotification) (Minio Extension) | ||
### API Reference : Bucket Policy Operations | ||
* [`getBucketPolicy`](https://docs.minio.io/docs/javascript-client-api-reference#getBucketPolicy) | ||
* [`setBucketPolicy`](https://docs.minio.io/docs/javascript-client-api-reference#setBucketPolicy) | ||
## Full Examples | ||
@@ -164,2 +194,3 @@ | ||
* [list-objects.js](https://github.com/minio/minio-js/blob/master/examples/list-objects.js) | ||
* [list-objects-v2.js](https://github.com/minio/minio-js/blob/master/examples/list-objects-v2.js) | ||
* [bucket-exists.js](https://github.com/minio/minio-js/blob/master/examples/bucket-exists.js) | ||
@@ -177,4 +208,6 @@ * [make-bucket.js](https://github.com/minio/minio-js/blob/master/examples/make-bucket.js) | ||
* [get-object.js](https://github.com/minio/minio-js/blob/master/examples/get-object.js) | ||
* [copy-object.js](https://github.com/minio/minio-js/blob/master/examples/copy-object.js) | ||
* [get-partialobject.js](https://github.com/minio/minio-js/blob/master/examples/get-partialobject.js) | ||
* [remove-object.js](https://github.com/minio/minio-js/blob/master/examples/remove-object.js) | ||
* [remove-incomplete-upload.js](https://github.com/minio/minio-js/blob/master/examples/remove-incomplete-upload.js) | ||
* [stat-object.js](https://github.com/minio/minio-js/blob/master/examples/stat-object.js) | ||
@@ -187,6 +220,15 @@ | ||
#### Full Examples: Bucket Notification Operations | ||
* [get-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-notification.js) | ||
* [set-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-notification.js) | ||
* [remove-all-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/remove-all-bucket-notification.js) | ||
* [listen-bucket-notification.js](https://github.com/minio/minio-js/blob/master/examples/minio/listen-bucket-notification.js) (Minio Extension) | ||
#### Full Examples: Bucket Policy Operations | ||
* [get-bucket-policy.js](https://github.com/minio/minio-js/blob/master/examples/get-bucket-policy.js) | ||
* [set-bucket-policy.js](https://github.com/minio/minio-js/blob/master/examples/set-bucket-policy.js) | ||
## Explore Further | ||
* [Complete Documentation](https://docs.minio.io) | ||
* [Minio JavaScript Client SDK API Reference](https://docs.minio.io/docs/javascript-client-api-reference) | ||
* [Minio JavaScript Client SDK API Reference](https://docs.minio.io/docs/javascript-client-api-reference) | ||
* [Build your own Shopping App Example- Full Application Example ](https://docs.minio.io/docs/javascript-shopping-app) | ||
@@ -193,0 +235,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
228
625904
4987
3