UNPKG

ks3

Version:

本代码库为`金山云存储KS3`服务.主要提供`KS3 nodejs SDK`和`命令行工具`.

282 lines (225 loc) 9.45 kB
var KS3 = require('..'); var util = require("../lib/util") var xml2json = util.xml2json; const { ak, sk, bucketName, region } = require('./const'); const { client } = require('./client'); var cb = function (err, data, response, body) { console.log('========> err:', err) if (response) console.log('========> statusCode:', response.headers) console.log('========> data:', data) if (body) console.log('========> body:', body.toString()) const d = xml2json.parser(data) console.log('========> 转后的json:', JSON.stringify(d)) } function put () { client.bucket.put({Bucket: 'liubo-test'}, cb) } function query () { client.bucket.get({ Bucket: bucketName, Marker: "", MaxKeys: 10, Prefix: "050" }, cb) } function deleteBucket () { client.bucket.del(cb) } function head () { client.bucket.head({ Bucket: 'demo' }, cb) } function listMultipartUploads () { client.bucket.listMultipartUploads({ Bucket: bucketName, Delimiter: '', //指定分隔符,非必填 EncodingType: '', //指定返回结果的编码方式,可选值:url,非必填 MaxUploads: 1000, //限定要列出正在进行任务的上限值([1,1000]),默认为1000,非必填 KeyMarker: '', //列出所有key按照词典顺序比key-marker参数值大的任务,非必填 UploadIdMarker: '', //与key-marker配合使用,指定列举目标空间中正在进行分块上传任务的起始位置,非必填 Prefix: '', //限定响应结果列表使用的前缀,非必填 }, cb) } function getBucketLocation () { client.bucket.getLocation(cb) } function getBucketCors () { client.bucket.getBucketCors(cb) } function putBucketCors () { const params = { Rules: [{ allowedMethod: ['POST', 'GET'], allowedOrigin: ['http://ks3.console.ksyun.com', 'http://ks3.ksyun.com'], allowedHeader: ['x-kss-test1:nodesdk-test1', 'x-kss-test2:nodesdk-test2'], maxAgeSeconds: 3000, exposeHeader: 'x-kss-test1:nodesdk-test1, x-kss-test2:nodesdk-test2' }] } client.bucket.putBucketCors(params, cb) } function deleteBucketCors () { client.bucket.deleteBucketCors(cb) } function getBucketReplicationConfiguration () { client.bucket.getBucketReplicationConfiguration(cb) } function deleteBucketReplicationConfiguration () { client.bucket.deleteBucketReplicationConfiguration(cb) } function putBucketReplicationConfiguration () { const param = { Rule: { prefix: ['abc', 'xyz'], deleteMarkerStatus: 'Disabled', targetBucket: 'targetBucketName', historicalObjectReplication: 'Enabled', } } client.bucket.putBucketReplicationConfiguration(param, cb) } //---------------------------------- bucket mirror ------------------------------------- function getBucketMirror () { client.bucket.getBucketMirror(cb) } function deleteBucketMirror () { client.bucket.deleteBucketMirror(cb) } function putBucketMirror () { const json = {"version":"V3","use_default_robots":false,"sync_mirror_rules":[{"match_condition":{"http_codes":["404"],"key_prefixes":["abc"]},"mirror_url":"http://v-ks-a-i.originalvod.com","mirror_request_setting":{"pass_query_string":true,"follow3xx":true,"header_setting":{"set_headers":[{"key":"abc","value":"def"}],"remove_headers":[{"key":"asdb"},{"key":"asdfa"}],"pass_headers":[{"key":"asdb"},{"key":"asdfa"}]}},"saving_setting":{"acl":"private"}}]} client.bucket.putBucketMirror({ Mirror: json }, cb) } //---------------------------------- bucket policy ------------------------------------- function getBucketPolicy () { client.bucket.getBucketPolicy(cb) } function deleteBucketPolicy () { client.bucket.deleteBucketPolicy(cb) } function putBucketPolicy () { const json = {} client.bucket.putBucketPolicy({ Policy: { "Statement":[{"Action":["ks3:GetObject"],"Resource":["krn:ksc:ks3:::zwy-test/测试测试(s).json"],"Effect":"Allow","Principal":{"KSC":["*"]}}, ]} }, cb) } //---------------------------------- bucket Lifecycle ------------------------------------- function getBucketLifecycle () { client.bucket.getBucketLifecycle(cb) } function deleteBucketLifecycle () { client.bucket.deleteBucketLifecycle(cb) } function putBucketLifecycle () { const config = [{"id":"id1","filter":{"prefix":"documents"},"expiration":{"date":"2016-12-31T00:00:00+08:00"},"status":"Enabled"},{"id":"id2","filter":{"prefix":"logs"},"expiration":{"days":130},"transition":[{"days":10,"storageClass":"STANDARD_IA"},{"days":40,"storageClass":"ARCHIVE"}],"status":"Enabled"},{"id":"id3","filter":{"prefix":"pic"},"status":"Enabled","expiration":{"date":"2018-01-01T00:00:00+08:00"}},{"id":"id4","filter":{"and":{"prefix":123,"tag":[{"key":"age","Value":21},{"key":"name","Value":"li"}]}},"status":"Enabled","expiration":{"date":"2021-01-01T00:00:00+08:00"}}] // const config = [{"id":"id1","filter":{"prefix":"documents"},"expiration":{"date":"2022-12-01T00:00:00+08:00"},"status":"Enabled"}] client.bucket.putBucketLifecycle({ Rules: config }, cb) } //---------------------------------- bucket logging ------------------------------------- function getLogging () { client.bucket.getLogging({ Bucket: bucketName },cb) } function putLogging () { const logging = { targetBucket: bucketName, // 必填,可与当前桶相同,但不推荐 targetPrefix: '' // 非必填 } client.bucket.putLogging({ Logging: logging }, cb) } function getAclType(){ client.bucket.getACLType(cb) } //---------------------------------- bucket retention ------------------------------------- function getBucketRetention(){ client.bucket.getBucketRetention(cb) } function putBucketRetention(){ client.bucket.putBucketRetention({ Status: 'Enabled', Days: 3 }, cb) } function listBucketRetention(){ client.bucket.listBucketRetention({ Marker: '24年-三国预测集训集', Prefix: '', MaxKeys: 10 },function(err,data, res){ const d = xml2json.parser(data) console.log('========> 转后的json:', JSON.stringify(d)) }) } function put () { client.bucket.put({ Bucket: 'zwy-test1111', headers: { 'x-kss-server-side-encryption': 'ASE256' } }, cb) } function getBucketEncryption(){ client.bucket.getBucketEncryption({ Bucket: 'zwy-test-guangzhou1' }, cb) } function putBucketEncryption(){ client.bucket.putBucketEncryption({ Bucket: 'zwy-test-guangzhou1' }, cb) } function deleteBucketEncryption(){ client.bucket.deleteBucketEncryption({ Bucket: 'zwy-test-guangzhou1' }, cb) } //---------------------------------- service操作 ------------------------------------- function listBucket () { client.service.listBucket(cb) } // put() // deleteBucket() // head() // query() // listBucket() getAclType() // listMultipartUploads() // getBucketLocation() // getBucketCors() // putBucketCors() // deleteBucketCors() // getBucketReplicationConfiguration() // deleteBucketReplicationConfiguration() // putBucketReplicationConfiguration() // getBucketMirror() // deleteBucketMirror() // putBucketMirror() // getBucketPolicy() // deleteBucketPolicy() // putBucketPolicy() // putBucketLifecycle() // getBucketLifecycle() // deleteBucketLifecycle() // getLogging() // putLogging() // getBucketRetention() // putBucketRetention() // listBucketRetention() // const obj = '{"LifecycleConfiguration":{"Rule":[{"ID":"id1","Filter":{"Prefix":"documents"},"Expiration":{"Date":"2016-12-31T00:00:00+08:00"},"Status":"Enabled"},{"ID":"id2","Filter":{"Prefix":"logs"},"Expiration":{"Days":130},"Transition":[{"Days":10,"StorageClass":"STANDARD_IA"},{"Days":40,"StorageClass":"ARCHIVE"}],"Status":"Enabled"},{"ID":"id3","Filter":{"Prefix":"pic"},"Status":"Enabled","Expiration":{"Date":"2018-01-01T00:00:00+08:00"}},{"ID":"id4","Filter":{"And":{"Prefix":123,"Tag":[{"Key":"age","Value":21},{"Key":"name","Value":"li"}]}},"Status":"Enabled","Expiration":{"Date":"2021-01-01T00:00:00+08:00"}}]}}' // const res = util.objToXml(JSON.parse(obj)) // console.log('res: ', res) // const obj = '<LifecycleConfiguration><Rule><ID>id1</ID><Filter><Prefix>documents</Prefix></Filter><Expiration><Date>2016-12-31T00:00:00+08:00</Date></Expiration><Status>Enabled</Status></Rule><Rule><ID>id2</ID><Filter><Prefix>logs</Prefix></Filter><Expiration><Days>130</Days></Expiration><Transition><Days>10</Days><StorageClass>STANDARD_IA</StorageClass></Transition><Transition><Days>40</Days><StorageClass>ARCHIVE</StorageClass></Transition><Status>Enabled</Status></Rule><Rule><ID>id3</ID><Filter><Prefix>pic</Prefix></Filter><Status>Enabled</Status><Expiration><Date>2018-01-01T00:00:00+08:00</Date></Expiration></Rule><Rule><ID>id4</ID><Filter><And><Prefix>123</Prefix><Tag><Key>age</Key><Value>21</Value></Tag><Tag><Key>name</Key><Value>li</Value></Tag></And></Filter><Status>Enabled</Status><Expiration><Date>2021-01-01T00:00:00+08:00</Date></Expiration></Rule></LifecycleConfiguration>' // const json = xml2json.parser(obj) // console.log(JSON.stringify(json)) // putBucketEncryption() // getBucketEncryption() // deleteBucketEncryption()