2023-10-03 11:14:36 +08:00
|
|
|
const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
|
|
|
|
const { policy2Str } = require('../utils/policy2Str');
|
|
|
|
const { isObject } = require('../utils/isObject');
|
|
|
|
|
|
|
|
const proto = exports;
|
|
|
|
/**
|
|
|
|
* putBucketPolicy
|
|
|
|
* @param {String} bucketName - bucket name
|
|
|
|
* @param {Object} policy - bucket policy
|
|
|
|
* @param {Object} options
|
|
|
|
*/
|
|
|
|
|
|
|
|
proto.putBucketPolicy = async function putBucketPolicy(bucketName, policy, options = {}) {
|
|
|
|
_checkBucketName(bucketName);
|
|
|
|
|
|
|
|
if (!isObject(policy)) {
|
|
|
|
throw new Error('policy is not Object');
|
|
|
|
}
|
|
|
|
const params = this._bucketRequestParams('PUT', bucketName, 'policy', options);
|
|
|
|
params.content = policy2Str(policy);
|
|
|
|
params.successStatuses = [200];
|
|
|
|
const result = await this.request(params);
|
|
|
|
return {
|
|
|
|
status: result.status,
|
|
|
|
res: result.res
|
|
|
|
};
|
|
|
|
};
|