UNPKG

ks3-js-sdk

Version:

js sdk for ks3

135 lines 5.27 kB
var putUploadFile = function() { describe('putUploadFile方法', function () { describe('上传ArrayBuffer文件,设置acl为public-read,并通过请求头设置存储类型为ARCHIVE', function () { let key = '1.mp4'; var buf = new ArrayBuffer(8); var blob = new Blob([buf]); it('上传文件', function (done) { this.timeout(8000); var lastPercent = 0; ks3.putUploadFile({ key, body: blob, acl: 'public-read', headers: { 'x-kss-storage-class': 'ARCHIVE' }, onProgress: function (info) { lastPercent = info.percent; }, }, (err, res) => { should.not.exist(err); lastPercent.should.be.equal(1); res.statusCode.should.be.equal(200); done(); }) }) it('获取该文件的ACL', function (done) { this.timeout(2000); ks3.getObjectAcl({ key }).then(res => { let grant = res.body.AccessControlPolicy.AccessControlList.Grant; grant[0].Permission.should.be.equal('FULL_CONTROL'); grant[1].Permission.should.be.equal('READ'); should.not.exist(res.error); res.statusCode.should.be.equal(200); done(); }) }) it('获取文件的存储类型', function (done) { this.timeout(2000); ks3.listObjects({ prefix: key }).then(res => { let contents = res.body.ListBucketResult.Contents; let object; if (contents instanceof Array) { object = contents.find((item) => item.Key === key); } else { object = contents; } object.StorageClass.should.be.equal('ARCHIVE'); should.not.exist(res.error); res.statusCode.should.be.equal(200); done(); }) }) it('删除该文件', function (done) { this.timeout(2000); ks3.delObject({ key }).then(res => { should.not.exist(res.error); res.statusCode.should.be.equal(204); done(); }) }) }) describe('上传文件空文件', function () { let key = 'empty.txt'; var file = ''; it('上传空文件', function (done) { this.timeout(8000); ks3.putUploadFile({ key, body: file, acl: 'public-read', headers: { 'x-kss-storage-class': 'ARCHIVE' } }, (err, res) => { console.log('错误:', err) console.log('结果:', res) should.not.exist(err); res.statusCode.should.be.equal(200); done(); }) }) it('删除该文件', function (done) { this.timeout(2000); ks3.delObject({ key }).then(res => { should.not.exist(res.error); res.statusCode.should.be.equal(204); done(); }) }) }) describe('上传文件过程可以被取消', function () { var key = '10m.zip'; var alive = false; var canceled = false; var taskId; it('上传文件正常取消', function (done) { this.timeout(8000); ks3.putUploadFile({ key: key, body: blob({ size: 1024 * 1024 * 2 }), onTaskReady: function (_taskId) { taskId = _taskId; }, onProgress: function (info) { alive = true; console.log('上传进度', info) if (!canceled) { if (info.percent > 0.5) { ks3.cancelTask(taskId); canceled = true; alive = false; setTimeout(() => { console.log('当前alive上传状态', alive) alive.should.be.equal(false); done(); }, 2000) } } } }, (err, res) => { alive = true; }) }) }) }) }