21 lines
		
	
	
		
			666 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			666 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import dateFormat from 'dateformat';
 | 
						|
 | 
						|
import { getStandardRegion } from '../utils/getStandardRegion';
 | 
						|
import { policy2Str } from '../utils/policy2Str';
 | 
						|
import { getSignatureV4 } from '../signUtils';
 | 
						|
 | 
						|
export function signPostObjectPolicyV4(this: any, policy: string | object, date: Date): string {
 | 
						|
  const policyStr = Buffer.from(policy2Str(policy), 'utf8').toString('base64');
 | 
						|
  const formattedDate = dateFormat(date, "UTC:yyyymmdd'T'HHMMss'Z'");
 | 
						|
  const onlyDate = formattedDate.split('T')[0];
 | 
						|
 | 
						|
  const signature = getSignatureV4(
 | 
						|
    this.options.accessKeySecret,
 | 
						|
    onlyDate,
 | 
						|
    getStandardRegion(this.options.region),
 | 
						|
    policyStr
 | 
						|
  );
 | 
						|
 | 
						|
  return signature;
 | 
						|
}
 |