ks3-js-sdk
Version:
js sdk for ks3
157 lines • 6.29 kB
JavaScript
var storageClass = function() {
describe('存储类型相关操作', function () {
let key = 'demo.txt';
let file = blob({ size: 1024 * 1024 * 5 });
before('上传文件', function (done) {
this.timeout(10000);
ks3.putObject({
key,
file
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done()
})
})
after('删除文件', function (done) {
this.timeout(2000);
ks3.delObject({
key
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(204);
done()
})
})
describe('设置文件的存储类型为STANDARD', function () {
it('设置文件的存储类型为STANDARD', function (done) {
this.timeout(2000);
ks3.modifyStorageClass({
key,
storageClass: 'STANDARD'
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done();
})
})
it('获取文件的存储类型', function (done) {
this.timeout(2000);
ks3.listObjects({
prefix: key
}).then(res => {
let contents = data.body.ListBucketResult.Contents;
let object;
if (contents instanceof Array) {
object = contents.find((item) => item.Key === key);
} else {
object = contents;
}
(object.Key === key && object.StorageClass === 'STANDARD').should.be.ok;
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done();
})
})
})
describe('解冻存储类型为STANDARD的文件', function () {
it('针对非归档类型的文件提交解冻操作,则返回400', function (done) {
this.timeout(2000);
ks3.restoreObject({
key,
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(400);
done();
})
})
})
describe('设置文件的存储类型为STANDARD_IA', function () {
it('设置文件的存储类型为STANDARD_IA', function (done) {
this.timeout(2000);
ks3.modifyStorageClass({
key,
storageClass: 'STANDARD_IA'
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done();
})
})
it('获取文件的存储类型', function (done) {
this.timeout(2000);
ks3.listObjects({
prefix: key
}).then(res => {
let contents = data.body.ListBucketResult.Contents;
let object;
if (contents instanceof Array) {
object = contents.find((item) => item.Key === key);
} else {
object = contents;
}
(object.Key === key && object.StorageClass === 'STANDARD_IA').should.be.ok;
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done();
})
})
})
describe('通过请求头设置文件的存储类型为ARCHIVE', function () {
it('通过请求头设置文件的存储类型为ARCHIVE,请求头中的值会覆盖掉参数中的值', function (done) {
this.timeout(2000);
ks3.modifyStorageClass({
key,
storageClass: 'ARCHIVE',
headers: {
'x-kss-storage-class': 'ARCHIVE'
}
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done();
})
})
it('获取文件的存储类型', function (done) {
this.timeout(2000);
ks3.listObjects({
prefix: key
}).then(res => {
let contents = data.body.ListBucketResult.Contents;
let object;
if (contents instanceof Array) {
object = contents.find((item) => item.Key === key);
} else {
object = contents;
}
(object.Key === key && object.StorageClass === 'ARCHIVE').should.be.ok;
should.not.exist(res.error);
data.statusCode.should.be.equal(200);
done();
})
})
})
describe('解冻存储类型为ARCHIVE的文件', function () {
it('对归档Object第一次调用RestoreObject接口,则返回202', function (done) {
this.timeout(2000);
ks3.restoreObject({
key,
}).then(res => {
should.not.exist(res.error);
data.statusCode.should.be.equal(202);
done();
})
})
it('如果已经成功调用过RestoreObject接口,且Object仍处于解冻中,再次调用时返回409', function (done) {
this.timeout(2000);
ks3.restoreObject({
key,
}).then(res => {
should.not.exist(data);
res.error.statusCode.should.be.equal(409);
done();
})
})
})
})
}