Skip to content

Commit

Permalink
Revert "chore: release 6.19.0 (#1268)"
Browse files Browse the repository at this point in the history
This reverts commit d39aaa7.
  • Loading branch information
YunZZY committed Dec 15, 2023
1 parent d39aaa7 commit d74de64
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 109 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/schedule.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Regularly clean test buckets at GMT 01:00 every day.
# Regularly clean test buckets at GMT 20:00 every day
name: 'Schdule Delete'

on:
schedule:
- cron: '0 1 1/1 * *'
- cron: '0 20 1/1 * *'

jobs:
cleanAllBucket:
Expand Down
6 changes: 0 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,6 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [6.19.0](https://github.com/ali-sdk/ali-oss/compare/v6.18.1...v6.19.0) (2023-12-15)

### Features

* verify object names strictly when signing URLs and enabled by default ([#1265](https://github.com/ali-sdk/ali-oss/issues/1265)) ([ff03bbb](https://github.com/ali-sdk/ali-oss/pull/1265/commits/ff03bbb62b041dd34d30ca2503745ba5d7c0a216))

### [6.18.1](https://github.com/ali-sdk/ali-oss/compare/v6.18.0...v6.18.1) (2023-09-08)

### Features
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ options:
- [region] {String} the bucket data region location, please see [Data Regions](#data-regions),
default is `oss-cn-hangzhou`.
- [internal] {Boolean} access OSS with aliyun internal network or not, default is `false`.
If your servers are running on aliyun too, you can set `true` to save a lot of money.
If your servers are running on aliyun too, you can set `true` to save lot of money.
- [secure] {Boolean} instruct OSS client to use HTTPS (secure: true) or HTTP (secure: false) protocol.
- [timeout] {String|Number} instance level timeout for all operations, default is `60s`.
- [cname] {Boolean}, default false, access oss with custom domain name. if true, you can fill `endpoint` field with your custom domain name,
Expand Down Expand Up @@ -2579,7 +2579,7 @@ console.log(result.objects);
console.log(result.deleteMarker);
```
### .signatureUrl(name[, options, strictObjectNameValidation])
### .signatureUrl(name[, options])
Create a signature url for download or upload object. When you put object with signatureUrl ,you need to pass `Content-Type`.Please look at the example.
Expand All @@ -2605,7 +2605,6 @@ parameters:
- body {String} set the body for callback
- [contentType] {String} set the type for body
- [customValue] {Object} set the custom value for callback,eg. {var1: value1,var2:value2}
- [strictObjectNameValidation] {boolean} the flag of verifying object name strictly, default is true
Success will return signature url.
Expand Down Expand Up @@ -2640,7 +2639,7 @@ const url = store.signatureUrl('ossdemo.txt', {
'content-type': 'text/custom',
'content-disposition': 'attachment'
}
}, false);
});
console.log(url);
// put operation
Expand All @@ -2661,7 +2660,7 @@ const url = store.signatureUrl('ossdemo.png', {
console.log(url);
```
### .asyncSignatureUrl(name[, options, strictObjectNameValidation])
### .asyncSignatureUrl(name[, options])
Basically the same as signatureUrl, if refreshSTSToken is configured asyncSignatureUrl will refresh stsToken
Expand All @@ -2687,7 +2686,6 @@ parameters:
- body {String} set the body for callback
- [contentType] {String} set the type for body
- [customValue] {Object} set the custom value for callback,eg. {var1: value1,var2:value2}
- [strictObjectNameValidation] {boolean} the flag of verifying object name strictly, default is true
Success will return signature url.
Expand Down Expand Up @@ -2719,7 +2717,7 @@ const url = await store.asyncSignatureUrl('ossdemo.txt', {
'content-type': 'text/custom',
'content-disposition': 'attachment'
}
}, false);
});
console.log(url);
// put operation
```
Expand Down
13 changes: 1 addition & 12 deletions lib/common/object/asyncSignatureUrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,10 @@ const { isFunction } = require('../utils/isFunction');

const proto = exports;

/**
* asyncSignatureUrl
* @param {String} name object name
* @param {Object} options options
* @param {boolean} [strictObjectNameValidation=true] the flag of verifying object name strictly
*/
proto.asyncSignatureUrl = async function asyncSignatureUrl(name, options, strictObjectNameValidation = true) {
proto.asyncSignatureUrl = async function asyncSignatureUrl(name, options) {
if (isIP(this.options.endpoint.hostname)) {
throw new Error('can not get the object URL when endpoint is IP');
}

if (strictObjectNameValidation && /^\?/.test(name)) {
throw new Error(`Invalid object name ${name}`);
}

options = options || {};
name = this._objectName(name);
options.method = options.method || 'GET';
Expand Down
10 changes: 2 additions & 8 deletions lib/common/object/signatureUrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,12 @@ const proto = exports;
* signatureUrl
* @deprecated will be deprecated in 7.x
* @param {String} name object name
* @param {Object} options options
* @param {boolean} [strictObjectNameValidation=true] the flag of verifying object name strictly
* @param {Object} options options
*/
proto.signatureUrl = function signatureUrl(name, options, strictObjectNameValidation = true) {
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');
}

if (strictObjectNameValidation && /^\?/.test(name)) {
throw new Error(`Invalid object name ${name}`);
}

options = options || {};
name = this._objectName(name);
options.method = options.method || 'GET';
Expand Down
40 changes: 1 addition & 39 deletions test/browser/browser.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -981,7 +981,6 @@ describe('browser', () => {
let store;
let name;
let needEscapeName;
const testSignatureObjectName = `?{测}\r\n[试];,/?:@&=+$<中>-_.!~*'(文)"¥#%!(字)^ \`符|\\${prefix}test.txt`;
before(async () => {
store = oss(ossConfig);
name = `${prefix}ali-sdk/oss/signatureUrl.js`;
Expand All @@ -1007,9 +1006,6 @@ describe('browser', () => {
});
assert.equal(object.res.status, 200);
// assert.equal(typeof object.res.headers['x-oss-request-id'], 'string');

const testSignatureObject = await store.put(testSignatureObjectName, Buffer.from('Hello World!', 'utf8'));
assert.equal(typeof testSignatureObject.res.headers['x-oss-request-id'], 'string');
});

it('should signature url get object ok', async () => {
Expand All @@ -1019,40 +1015,6 @@ describe('browser', () => {
assert.equal(urlRes.data.toString(), result.content.toString());
});

it('should verify object name strictly by default', () => {
assert.throws(() => {
try {
store.signatureUrl(testSignatureObjectName);
} catch (err) {
assert.strictEqual(err.message, `Invalid object name ${testSignatureObjectName}`);
throw err;
}
}, Error);

store
.asyncSignatureUrl(testSignatureObjectName)
.then(() => {
assert.fail('Expected asyncSignatureUrl to throw an error');
})
.catch(err => {
assert.strictEqual(err.message, `Invalid object name ${testSignatureObjectName}`);
});
});

it('should verify object name loosely', async () => {
const testSignatureObjectFromGet = await store.get(testSignatureObjectName);
const testSignatureObjectUrl = store.signatureUrl(testSignatureObjectName, undefined, false);
const testSignatureObjectFromUrl = await urllib.request(testSignatureObjectUrl);
assert.strictEqual(testSignatureObjectFromUrl.data.toString(), testSignatureObjectFromGet.content.toString());

const testSignatureObjectUrlAsync = await store.asyncSignatureUrl(testSignatureObjectName, undefined, false);
const testSignatureObjectFromUrlAsync = await urllib.request(testSignatureObjectUrlAsync);
assert.strictEqual(
testSignatureObjectFromUrlAsync.data.toString(),
testSignatureObjectFromGet.content.toString()
);
});

// it('should signature url with image processed and get object ok', function* () {
// var name = prefix + 'ali-sdk/oss/nodejs-test-signature-1024x768.png';
// var originImagePath = path.join(__dirname, 'nodejs-1024x768.png');
Expand Down Expand Up @@ -1095,7 +1057,7 @@ describe('browser', () => {
assert.equal(urlRes.data.toString(), result.content.toString());
});

it('should signature url with response limitation', async () => {
it('should signature url with reponse limitation', async () => {
const response = {
'content-type': 'xml',
'content-language': 'zh-cn'
Expand Down
35 changes: 0 additions & 35 deletions test/node/object.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,6 @@ describe('test/object.test.js', () => {
describe('signatureUrl()', () => {
let name;
let needEscapeName;
const testSignatureObjectName = `?{测}\r\n[试];,/?:@&=+$<中>-_.!~*'(文)"¥#%!(字)^ \`符|\\${prefix}test.txt`;
before(async () => {
name = `${prefix}ali-sdk/oss/signatureUrl.js`;
let object = await store.put(name, __filename, {
Expand All @@ -1046,9 +1045,6 @@ describe('test/object.test.js', () => {
}
});
assert.equal(typeof object.res.headers['x-oss-request-id'], 'string');

const testSignatureObject = await store.put(testSignatureObjectName, Buffer.from('Hello World!', 'utf8'));
assert.equal(testSignatureObject.res.status, 200);
});

it('should signature url get object ok', async () => {
Expand All @@ -1062,37 +1058,6 @@ describe('test/object.test.js', () => {
}
});

it('should verify object name strictly by default', () => {
assert.throws(() => {
try {
store.signatureUrl(testSignatureObjectName);
} catch (err) {
assert.strictEqual(err.message, `Invalid object name ${testSignatureObjectName}`);
throw err;
}
}, Error);

assert.rejects(store.asyncSignatureUrl(testSignatureObjectName), err => {
assert.strictEqual(err.message, `Invalid object name ${testSignatureObjectName}`);

return true;
});
});

it('should verify object name loosely', async () => {
const testSignatureObjectFromGet = await store.get(testSignatureObjectName);
const testSignatureObjectUrl = store.signatureUrl(testSignatureObjectName, undefined, false);
const testSignatureObjectFromUrl = await urllib.request(testSignatureObjectUrl);
assert.strictEqual(testSignatureObjectFromUrl.data.toString(), testSignatureObjectFromGet.content.toString());

const testSignatureObjectUrlAsync = await store.asyncSignatureUrl(testSignatureObjectName, undefined, false);
const testSignatureObjectFromUrlAsync = await urllib.request(testSignatureObjectUrlAsync);
assert.strictEqual(
testSignatureObjectFromUrlAsync.data.toString(),
testSignatureObjectFromGet.content.toString()
);
});

it('should signature url with response limitation', () => {
try {
const response = {
Expand Down

0 comments on commit d74de64

Please sign in to comment.