hexo/node_modules/ali-oss/lib/common/object/head.js

41 lines
1.0 KiB
JavaScript

const { checkEnv } = require('../utils/checkEnv');
const proto = exports;
/**
* head
* @param {String} name - object name
* @param {Object} options
* @param {{res}}
*/
proto.head = async function head(name, options = {}) {
checkEnv(
'Because HeadObject has gzip enabled, head cannot get the file size correctly. If you need to get the file size, please use getObjectMeta'
);
options.subres = Object.assign({}, options.subres);
if (options.versionId) {
options.subres.versionId = options.versionId;
}
const params = this._objectRequestParams('HEAD', name, options);
params.successStatuses = [200, 304];
const result = await this.request(params);
const data = {
meta: null,
res: result.res,
status: result.status
};
if (result.status === 200) {
Object.keys(result.headers).forEach(k => {
if (k.indexOf('x-oss-meta-') === 0) {
if (!data.meta) {
data.meta = {};
}
data.meta[k.substring(11)] = result.headers[k];
}
});
}
return data;
};