12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const urlutil = require('url');
- const utility = require('utility');
- const copy = require('copy-to');
- const signHelper = require('../../common/signUtils');
- const { isIP } = require('../utils/isIP');
- const proto = exports;
- /**
- * signatureUrl
- * @deprecated will be deprecated in 7.x
- * @param {String} name object name
- * @param {Object} options options
- */
- proto.signatureUrl = function signatureUrl(name, options) {
- if (isIP(this.options.endpoint.hostname)) {
- throw new Error('can not get the object URL when endpoint is IP');
- }
- options = options || {};
- name = this._objectName(name);
- options.method = options.method || 'GET';
- const expires = utility.timestamp() + (options.expires || 1800);
- const params = {
- bucket: this.options.bucket,
- object: name
- };
- const resource = this._getResource(params);
- if (this.options.stsToken) {
- options['security-token'] = this.options.stsToken;
- }
- const signRes = signHelper._signatureForURL(this.options.accessKeySecret, options, resource, expires);
- const url = urlutil.parse(this._getReqUrl(params));
- url.query = {
- OSSAccessKeyId: this.options.accessKeyId,
- Expires: expires,
- Signature: signRes.Signature
- };
- copy(signRes.subResource).to(url.query);
- return url.format();
- };
|