Skip to content

Commit 614250f

Browse files
committed
add BucketEncryption API
1 parent e4e74af commit 614250f

File tree

3 files changed

+120
-1
lines changed

3 files changed

+120
-1
lines changed

demo/demo.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,40 @@ function getBucketAccelerate() {
753753
});
754754
}
755755

756+
function putBucketEncryption() {
757+
cos.putBucketEncryption({
758+
Bucket: config.Bucket,
759+
Region: config.Region,
760+
ServerSideEncryptionConfiguration: {
761+
Rule: [{
762+
ApplySideEncryptionConfiguration: {
763+
SSEAlgorithm: 'AES256',
764+
},
765+
}],
766+
},
767+
}, function(err, data) {
768+
console.log(JSON.stringify(err || data, null, 2));
769+
});
770+
}
771+
772+
function getBucketEncryption() {
773+
cos.getBucketEncryption({
774+
Bucket: config.Bucket,
775+
Region: config.Region
776+
}, function(err, data) {
777+
console.log(err || JSON.stringify(data));
778+
});
779+
}
780+
781+
function deleteBucketEncryption() {
782+
cos.deleteBucketEncryption({
783+
Bucket: config.Bucket,
784+
Region: config.Region
785+
}, function(err, data) {
786+
console.log(err || JSON.stringify(data));
787+
});
788+
}
789+
756790
function putObject() {
757791
// 创建测试文件
758792
var filename = '1mb.zip';
@@ -1412,6 +1446,9 @@ function deleteFolder() {
14121446
// listBucketInventory();
14131447
// putBucketAccelerate();
14141448
// getBucketAccelerate();
1449+
// putBucketEncryption();
1450+
// getBucketEncryption();
1451+
// deleteBucketEncryption();
14151452
// deleteBucket();
14161453
// putObjectCopy();
14171454
// getObjectStream();

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cos-nodejs-sdk-v5",
3-
"version": "2.9.9",
3+
"version": "2.9.10",
44
"description": "cos nodejs sdk v5",
55
"main": "index.js",
66
"types": "types",

sdk/base.js

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,6 +1676,85 @@ function getBucketAccelerate(params, callback) {
16761676
});
16771677
}
16781678

1679+
function putBucketEncryption(params, callback) {
1680+
var conf = params.ServerSideEncryptionConfiguration || {};
1681+
var Rules = conf.Rule || conf.Rules || [];
1682+
var xml = util.json2xml({ServerSideEncryptionConfiguration: {Rule:Rules}});
1683+
1684+
var headers = params.Headers;
1685+
headers['Content-Type'] = 'application/xml';
1686+
headers['Content-MD5'] = util.binaryBase64(util.md5(xml));
1687+
1688+
submitRequest.call(this, {
1689+
Action: 'name/cos:PutBucketEncryption',
1690+
method: 'PUT',
1691+
Bucket: params.Bucket,
1692+
Region: params.Region,
1693+
body: xml,
1694+
action: 'encryption',
1695+
headers: headers,
1696+
}, function (err, data) {
1697+
if (err && err.statusCode === 204) {
1698+
return callback(null, {statusCode: err.statusCode});
1699+
} else if (err) {
1700+
return callback(err);
1701+
}
1702+
callback(null, {
1703+
statusCode: data.statusCode,
1704+
headers: data.headers,
1705+
});
1706+
});
1707+
}
1708+
1709+
function getBucketEncryption(params, callback) {
1710+
submitRequest.call(this, {
1711+
Action: 'name/cos:GetBucketEncryption',
1712+
method: 'GET',
1713+
Bucket: params.Bucket,
1714+
Region: params.Region,
1715+
headers: params.Headers,
1716+
action: 'encryption',
1717+
}, function (err, data) {
1718+
if (err) {
1719+
if (err.statusCode === 404 && err.code === 'NoSuchEncryptionConfiguration') {
1720+
var result = {
1721+
EncryptionConfiguration: {Rules: []},
1722+
statusCode: err.statusCode,
1723+
};
1724+
err.headers && (result.headers = err.headers);
1725+
callback(null, result);
1726+
} else {
1727+
callback(err);
1728+
}
1729+
return;
1730+
}
1731+
var Rules = util.makeArray(data.EncryptionConfiguration && data.EncryptionConfiguration.Rule || []);
1732+
data.EncryptionConfiguration = {Rules: Rules};
1733+
callback(err, data);
1734+
});
1735+
}
1736+
1737+
function deleteBucketEncryption(params, callback) {
1738+
submitRequest.call(this, {
1739+
Action: 'name/cos:DeleteBucketReplication',
1740+
method: 'DELETE',
1741+
Bucket: params.Bucket,
1742+
Region: params.Region,
1743+
headers: params.Headers,
1744+
action: 'encryption',
1745+
}, function (err, data) {
1746+
if (err && err.statusCode === 204) {
1747+
return callback(null, {statusCode: err.statusCode});
1748+
} else if (err) {
1749+
return callback(err);
1750+
}
1751+
callback(null, {
1752+
statusCode: data.statusCode,
1753+
headers: data.headers,
1754+
});
1755+
});
1756+
}
1757+
16791758
// Object 相关
16801759

16811760
/**
@@ -3713,6 +3792,9 @@ var API_MAP = {
37133792
deleteBucketInventory: deleteBucketInventory,
37143793
putBucketAccelerate: putBucketAccelerate,
37153794
getBucketAccelerate: getBucketAccelerate,
3795+
putBucketEncryption: putBucketEncryption,
3796+
getBucketEncryption: getBucketEncryption,
3797+
deleteBucketEncryption: deleteBucketEncryption,
37163798

37173799
// Object 相关方法
37183800
getObject: getObject,

0 commit comments

Comments
 (0)