31 lines
		
	
	
		
			736 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			736 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const proto = exports;
 | 
						|
 | 
						|
/*
 | 
						|
 * Get object's ACL
 | 
						|
 * @param {String} name the object key
 | 
						|
 * @param {Object} options
 | 
						|
 * @return {Object}
 | 
						|
 */
 | 
						|
proto.getACL = async function getACL(name, options = {}) {
 | 
						|
  options.subres = Object.assign({ acl: '' }, options.subres);
 | 
						|
  if (options.versionId) {
 | 
						|
    options.subres.versionId = options.versionId;
 | 
						|
  }
 | 
						|
  name = this._objectName(name);
 | 
						|
 | 
						|
  const params = this._objectRequestParams('GET', name, options);
 | 
						|
  params.successStatuses = [200];
 | 
						|
  params.xmlResponse = true;
 | 
						|
 | 
						|
  const result = await this.request(params);
 | 
						|
 | 
						|
  return {
 | 
						|
    acl: result.data.AccessControlList.Grant,
 | 
						|
    owner: {
 | 
						|
      id: result.data.Owner.ID,
 | 
						|
      displayName: result.data.Owner.DisplayName
 | 
						|
    },
 | 
						|
    res: result.res
 | 
						|
  };
 | 
						|
};
 |