putBucketPolicy.js 820 B

123456789101112131415161718192021222324252627
  1. const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
  2. const { policy2Str } = require('../utils/policy2Str');
  3. const { isObject } = require('../utils/isObject');
  4. const proto = exports;
  5. /**
  6. * putBucketPolicy
  7. * @param {String} bucketName - bucket name
  8. * @param {Object} policy - bucket policy
  9. * @param {Object} options
  10. */
  11. proto.putBucketPolicy = async function putBucketPolicy(bucketName, policy, options = {}) {
  12. _checkBucketName(bucketName);
  13. if (!isObject(policy)) {
  14. throw new Error('policy is not Object');
  15. }
  16. const params = this._bucketRequestParams('PUT', bucketName, 'policy', options);
  17. params.content = policy2Str(policy);
  18. params.successStatuses = [200];
  19. const result = await this.request(params);
  20. return {
  21. status: result.status,
  22. res: result.res
  23. };
  24. };