Node.js管理存儲空間訪問權限
更新時間:
您可以在創(chuàng)建存儲空間(Bucket)時設置存儲空間的訪問權限(ACL),也可以在創(chuàng)建存儲空間后根據(jù)自己的業(yè)務需求修改存儲空間的訪問權限。本文介紹如何設置和獲取存儲空間的訪問權限。
讀寫權限類型
存儲空間的訪問權限有以下三類:
訪問權限 | 描述 | 訪問權限值 |
私有 | 存儲空間的擁有者和授權用戶有該存儲空間內(nèi)的文件的讀寫權限,其他用戶沒有權限操作該存儲空間內(nèi)的文件。 | private |
公共讀 | 存儲空間的擁有者和授權用戶有該存儲空間內(nèi)的文件的讀寫權限,其他用戶只有該存儲空間內(nèi)的文件的讀權限。請謹慎使用該權限。 | public-read |
公共讀寫 | 所有用戶都有該存儲空間內(nèi)的文件的讀寫權限。請謹慎使用該權限。 | public-read-write |
設置存儲空間的訪問權限
創(chuàng)建存儲空間的同時設置其訪問權限
以下代碼用于創(chuàng)建存儲空間的同時設置其訪問權限:
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填寫B(tài)ucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
region: 'yourregion',
// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// 填寫存儲空間名稱。
bucket: 'yourbucketname'
});
// 此處以創(chuàng)建存儲空間的同時設置其訪問權限為public-read為例。
async function putBucket() {
const acl = 'public-read'; try {
await client.putBucket('yourbucketname', { acl });
} catch (error) {
console.log(error)
}
}
putBucket()
創(chuàng)建存儲空間后修改其訪問權限
以下代碼用于創(chuàng)建存儲空間后修改其訪問權限:
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填寫B(tài)ucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
region: 'yourregion',
// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// 填寫存儲空間名稱。
bucket: 'yourbucketname'
});
async function putBucketACL() {
// 此處以創(chuàng)建存儲空間后修改其訪問權限為private為例。
const acl = 'private'
try {
await client.putBucketACL('yourbucketname', acl)
} catch (error) {
console.log(error)
}
}
putBucketACL()
獲取存儲空間的訪問權限
以下代碼用于獲取存儲空間的訪問權限:
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填寫B(tài)ucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
region: 'yourregion',
// 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// 填寫存儲空間名稱。
bucket: 'yourbucketname'
});
// 獲取存儲空間的訪問權限。
async function getBucketAcl() {
const result = await client.getBucketACL('yourbucketname')
console.log('acl: ', result.acl)
}
getBucketAcl()
相關文檔
關于管理存儲空間讀寫權限的完整示例代碼,請參見GitHub示例。
關于設置存儲空間讀寫權限的API接口說明,請參見PutBucketAcl。
關于獲取存儲空間讀寫權限的API接口說明,請參見GetBucketAcl。
文檔內(nèi)容是否對您有幫助?