getBucketWebsite.js 1.1 KB

12345678910111213141516171819202122232425262728
  1. const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
  2. const { isObject } = require('../utils/isObject');
  3. const proto = exports;
  4. proto.getBucketWebsite = async function getBucketWebsite(name, options) {
  5. _checkBucketName(name);
  6. const params = this._bucketRequestParams('GET', name, 'website', options);
  7. params.successStatuses = [200];
  8. params.xmlResponse = true;
  9. const result = await this.request(params);
  10. let routingRules = [];
  11. if (result.data.RoutingRules && result.data.RoutingRules.RoutingRule) {
  12. if (isObject(result.data.RoutingRules.RoutingRule)) {
  13. routingRules = [result.data.RoutingRules.RoutingRule];
  14. } else {
  15. routingRules = result.data.RoutingRules.RoutingRule;
  16. }
  17. }
  18. return {
  19. index: (result.data.IndexDocument && result.data.IndexDocument.Suffix) || '',
  20. supportSubDir: (result.data.IndexDocument && result.data.IndexDocument.SupportSubDir) || 'false',
  21. type: result.data.IndexDocument && result.data.IndexDocument.Type,
  22. routingRules,
  23. error: (result.data.ErrorDocument && result.data.ErrorDocument.Key) || null,
  24. res: result.res
  25. };
  26. };