Skip to content

Commit 0fe4d15

Browse files
authored
Merge pull request #201 from ChaosBee/feat/ks3-support
贡献一下对于金山云KS3的支持
2 parents 9e7b707 + 55bdcd3 commit 0fe4d15

File tree

10 files changed

+338
-7
lines changed

10 files changed

+338
-7
lines changed

package-lock.json

Lines changed: 95 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"electron-json-storage": "^4.1.7",
4242
"fs-extra": "^7.0.1",
4343
"klaw-sync": "^6.0.0",
44+
"ks3": "^0.5.1",
4445
"log4js": "^3.0.6",
4546
"mime-types": "^2.1.24",
4647
"multispinner": "^0.2.1",

src/main/index.dev.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
// Set babel `env` and install `babel-register`
1111
// process.env.NODE_ENV = 'development';
1212
// process.env.BABEL_ENV = 'main';
13+
import { BrowserWindow } from 'electron';
1314

1415
require("babel-register")({
1516
ignore: /node_modules/

src/renderer/cos/CloudObjectStorage.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import ali from '../cos/ali'
99
import upyun from '../cos/upyun'
1010
import aws from '../cos/aws'
1111
import jd from '../cos/jd'
12+
import ks3 from '../cos/ks3'
1213

1314
import brand from '../cos/brand'
1415

@@ -55,6 +56,9 @@ export default class CloudObjectStorage {
5556
case brand.jd.key:
5657
this.cos = jd
5758
break
59+
case brand.ks3.key:
60+
this.cos = ks3
61+
break
5862
case brand.minio.key:
5963
this.cos = aws
6064
break

src/renderer/cos/brand.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ export default {
4949
name: '京东云',
5050
features: ['paging', 'manualPrivateBucket'],
5151
},
52+
ks3: {
53+
key: 'ks3',
54+
name: '金山云',
55+
features: ['paging'],
56+
},
5257
minio: {
5358
key: 'minio',
5459
name: 'MinIO',

src/renderer/cos/ks3.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const KS3 = require('ks3/lib/ks3')
2+
import KS3Bucket from './ks3Bucket'
3+
4+
let client
5+
6+
function init(param) {
7+
client = new KS3(param.access_key, param.secret_key);
8+
client.config({
9+
dataType: 'json'
10+
})
11+
console.log('client: ', client)
12+
}
13+
14+
function getBuckets(callback) {
15+
_getBuckets(client, callback)
16+
}
17+
18+
function _getBuckets(client, callback) {
19+
client.service.get(function(error, result) {
20+
let data = result.ListAllMyBucketsResult.Buckets
21+
data.Bucket.forEach((item, index) => {
22+
data.Bucket[index].name = data.Bucket[index].Name
23+
data.Bucket[index].region = data.Bucket[index].Region
24+
})
25+
// 有错误则回调错误
26+
callback && callback(error || null, data.Bucket)
27+
})
28+
}
29+
30+
function generateBucket(bucketInfo) {
31+
return new KS3Bucket(bucketInfo, client)
32+
}
33+
34+
export default { init, getBuckets, _getBuckets, generateBucket }

0 commit comments

Comments
 (0)