非资源 Owner 指该用户既不是存储桶所有者,也不是文件的所有者,但是您可以通过授权使得该用户拥有文件的下载等权限。本文介绍如何实现非资源 Owner 的授权。
本教程以 aaa、bbb、ccc 用户为例,具体的背景和实现目标如下:
本场景下建议您使用桶策略进行授权。关于桶策略的详细说明,请参见桶策略概述。
data
目录上传 sample.txt
对象时设置文件权限为 bucket-owner-full-control,使得 aaa 用户拥有该文件的全部权限。data
目录的 GetObject 权限,使得 ccc 用户拥有下载 sample.txt
对象的权限。执行以下命令,初始化配置tosutil 工具。
./tosutil config -i <access key> -k <secret key> -e <endpoint> -re <region>
参数 | 说明 |
---|---|
access key | bbb 用户的 Access Key ID。 说明 关于查看 AK/SK 信息的具体步骤,请参见查看 AK/SK 信息。 |
secret key | bbb 用户的 Secret Access Key。 |
endpoint | TOS 对外访问域名。 |
region | test 存储桶所在地域。 说明 TOS 支持的地域信息,请参见访问域名 Endpoint。 |
执行以下命令,上传 sample.txt
文件,并设置文件的访问权限为 bucket-owner-full-control。
./tosutil cp file1_url tos://bucket[/prefix] -acl=bucket-owner-full-control
示例:
./tosutil cp sample.txt tos://test/data/sample.txt -acl=bucket-owner-full-control
参数 | 说明 |
---|---|
file_url | 本地文件路径。如果要上传多个文件,可以在可在命令中添加多个 说明 您也可以使用 tosutil 上传文件夹或文件列表,具体操作,请参见上传对象(cp)。 |
bucket | 存储桶名称。 |
prefix | 批量操作时的对象名前缀。 |
-acl | 上传或复制对象时可指定的预定义访问策略。支持的值如下:
|
data/*
。ccc 用户可以调用 GetObject 接口获取 sample.txt
文件。关于 GetObject 接口的详细介绍,请参见GetObject。