通用對象存儲應用程式界面
這套 API 很好地相容了 CEPH 對象存儲服務,因此取 ceph 作為本包的別名。你可以按照個人喜好,引用 osapi
或 ceph
包,兩個 NPM 包將保持同步更新。
我們提供兩種不同風格的 API:OpenStack SWIFT 風格和 Amazon S3 風格。
const swift = require('osapi/swift');
let conn = new swift.Connection({
endPoint : 'http://storage.example.com/',
subuser : 'userName:subUserName',
key : '380289ba59473a368c593c1f1de6efb0380289ba5',
// generally 40 characters
tempURLKey : '380289ba59473a368c593c1f1de6efb0',
// generally 32 characters
container : 'containerName',
});
conn.createObject('hello/world', 'Hello world!', (err) => {
// ...
});
conn.readObject('hello/world', (err, data) => {
// ...
data.contentType;
data.buffer;
});
const s3 = require('osapi/s3');
let conn = new s3.Connection({
endPoint : 'http://storage.example.com/',
accessKey : '380289ba59473a368c59',
// 20 characters
secretAccessKey : '380289ba59473a368c593c1f1de6efb0380289ba5',
// 40 characters
bucket : 'bucketName',
});
conn.createObject({
name: 'hello/world',
meta: { /* self defined meta info */ }
}, 'Hello world!', (err) => {
// ...
});
conn.readObject('hello/world', (err, data) => {
// ...
data.contentType;
data.buffer;
data.meta;
});
请阅读 文档。
亞馬遜的簡單存儲服務(S3)和 OpenStack Swift 有相似之外,但仍然是兩種不同的東西。
S3 | SWIFT | 含義 |
---|---|---|
bucket | container | 屬於某個賬戶的、用於存儲對象的容器。 |
access_key | - | 用於識別賬戶的唯一標識串。 |
secret_secret_key | - | 用於確認請求合法性的令牌,相當於密碼。 |
- | key | 屬於某個子用戶,用於生成訪問令牌的密鑰。 |
- | temp_url_key | 屬於某個子用戶,用於生成臨時下載 URL 的密鑰。 |
- | user | 對應某個賬戶。 |
- | subuser | 在指定賬戶下開設的子用戶,用於區分不同的訪問權限。 |