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; };