42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 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;
 | 
						|
};
 |