getBucketLifecycle.js 896 B

123456789101112131415161718192021222324252627282930313233
  1. const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
  2. const { isArray } = require('../utils/isArray');
  3. const { formatObjKey } = require('../utils/formatObjKey');
  4. const proto = exports;
  5. proto.getBucketLifecycle = async function getBucketLifecycle(name, options) {
  6. _checkBucketName(name);
  7. const params = this._bucketRequestParams('GET', name, 'lifecycle', options);
  8. params.successStatuses = [200];
  9. params.xmlResponse = true;
  10. const result = await this.request(params);
  11. let rules = result.data.Rule || null;
  12. if (rules) {
  13. if (!isArray(rules)) {
  14. rules = [rules];
  15. }
  16. rules = rules.map(_ => {
  17. if (_.ID) {
  18. _.id = _.ID;
  19. delete _.ID;
  20. }
  21. if (_.Tag && !isArray(_.Tag)) {
  22. _.Tag = [_.Tag];
  23. }
  24. return formatObjKey(_, 'firstLowerCase');
  25. });
  26. }
  27. return {
  28. rules,
  29. res: result.res
  30. };
  31. };