putBucketVersioning.js 884 B

1234567891011121314151617181920212223242526272829303132333435
  1. const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
  2. const { obj2xml } = require('../utils/obj2xml');
  3. const proto = exports;
  4. /**
  5. * putBucketVersioning
  6. * @param {String} name - bucket name
  7. * @param {String} status
  8. * @param {Object} options
  9. */
  10. proto.putBucketVersioning = async function putBucketVersioning(name, status, options = {}) {
  11. _checkBucketName(name);
  12. if (!['Enabled', 'Suspended'].includes(status)) {
  13. throw new Error('status must be Enabled or Suspended');
  14. }
  15. const params = this._bucketRequestParams('PUT', name, 'versioning', options);
  16. const paramXMLObj = {
  17. VersioningConfiguration: {
  18. Status: status
  19. }
  20. };
  21. params.mime = 'xml';
  22. params.content = obj2xml(paramXMLObj, {
  23. headers: true
  24. });
  25. const result = await this.request(params);
  26. return {
  27. res: result.res,
  28. status: result.status
  29. };
  30. };