管理存储空间访问权限
存储空间(Bucket)是存储对象(Object)的容器。对象都隶属于存储空间。本文介绍如何设置和获取存储空间访问权限(ACL)。
设置存储空间的访问权限
存储空间的访问权限(ACL)有以下三类:
访问权限 | 描述 | 访问权限值 |
---|---|---|
私有 | 存储空间的拥有者和授权用户有该存储空间内的文件的读写权限,其他用户没有权限操作该存储空间内的文件。 | OSS_ACL_PRIVATE |
公共读 | 存储空间的拥有者和授权用户有该存储空间内的文件的读写权限,其他用户只有该存储空间内的文件的读权限。请谨慎使用该权限。 | OSS_ACL_PUBLIC_READ |
公共读写 | 所有用户都有该存储空间内的文件的读写权限。请谨慎使用该权限。 | OSS_ACL_PUBLIC_READ_WRITE |
更多关于访问权限的内容请参见开发指南中的访问控制。
以下代码用于设置存储空间的访问权限:
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* 初始化OSS账号信息 */
std::string AccessKeyId = "yourAccessKeyId";
std::string AccessKeySecret = "yourAccessKeySecret";
std::string Endpoint = "yourEndpoint";
std::string BucketName = "yourBucketName";
/* 初始化网络等资源 */
InitializeSdk();
ClientConfiguration conf;
OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);
/* 设置存储空间访问权限 */
SetBucketAclRequest request(BucketName, CannedAccessControlList::Private);
auto outcome = client.SetBucketAcl(request);
if (outcome.isSuccess()) {
std::cout << " setBucketAcl to private success " << std::endl;
}
else {
/* 异常处理 */
std::cout << "SetBucketAcl fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
ShutdownSdk();
return -1;
}
/* 释放网络等资源 */
ShutdownSdk();
return 0;
}
设置存储空间访问权限的更多详情,请参见PutBucketACL。
获取存储空间的访问权限
以下代码用于获取存储空间的访问权限:
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* 初始化OSS账号信息 */
std::string AccessKeyId = "yourAccessKeyId";
std::string AccessKeySecret = "yourAccessKeySecret";
std::string Endpoint = "yourEndpoint";
std::string BucketName = "yourBucketName";
/* 初始化网络等资源 */
InitializeSdk();
ClientConfiguration conf;
OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);
/* 获取存储空间访问权限 */
GetBucketAclRequest request(BucketName);
auto outcome = client.GetBucketAcl(request);
if (outcome.isSuccess()) {
std::cout << "getBucketAcl success, acl: " << outcome.result().Acl() << std::endl;
}
else {
/* 异常处理 */
std::cout << "getBucketAcl fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
ShutdownSdk();
return -1;
}
/* 释放网络等资源 */
ShutdownSdk();
return 0;
}
获取存储空间访问权限的更多详情,请参见GetBucketAcl。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论