hexo/node_modules/ali-oss/lib/common/bucket/putBucketRequestPayment.js

41 lines
1.0 KiB
JavaScript

const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
const { obj2xml } = require('../utils/obj2xml');
const proto = exports;
/**
* putBucketRequestPayment
* @param {String} bucketName
* @param {String} payer
* @param {Object} options
*/
const payerAll = ['BucketOwner', 'Requester'];
proto.putBucketRequestPayment = async function putBucketRequestPayment(bucketName, payer, options) {
options = options || {};
if (!payer || payerAll.indexOf(payer) < 0) {
throw new Error('payer must be BucketOwner or Requester');
}
_checkBucketName(bucketName);
const params = this._bucketRequestParams('PUT', bucketName, 'requestPayment', options);
params.successStatuses = [200];
const paramXMLObj = {
RequestPaymentConfiguration: {
Payer: payer
}
};
const paramXML = obj2xml(paramXMLObj, {
headers: true
});
params.mime = 'xml';
params.content = paramXML;
const result = await this.request(params);
return {
status: result.status,
res: result.res
};
};