2023-10-03 11:14:36 +08:00
|
|
|
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
|
|
|
|
};
|
|
|
|
};
|