使用预签名 URL 共享对象 - Amazon Simple Storage Service

使用预签名 URL 共享对象

默认情况下,所有 Amazon S3 对象都是私有的,只有对象拥有者才具有访问它们的权限。但是,对象拥有者可以通过创建预签名 URL 与其他人共享对象。预签名 URL 使用安全凭证来授予下载对象的限时权限。可以在浏览器中输入此 URL,或者程序使用此 URL 来下载对象。预签名 URL 使用的凭证是生成该 URL 的 AWS 用户的凭证。

有关预签名 URL 的一般信息,请参阅使用预签名 URL

您可以使用 Amazon S3 控制台、适用于 Visual Studio 的 AWS Explorer 或 AWS Toolkit for Visual Studio Code 创建预签名 URL 来共享对象,而不需要编写任何代码。也可以使用 AWS Command Line Interface(AWS CLI)或 AWS SDK 以编程方式生成预签名 URL。

您可以使用 Amazon S3 控制台,按照以下步骤生成预签名 URL 来共享对象。使用控制台时,预签名 URL 的最长过期时间为自创建时起 12 小时。

使用 Amazon S3 控制台生成预签名 URL
  1. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. Buckets(存储桶)列表中,请选择包含要为其生成预签名 URL 的对象的存储桶的名称。

  4. Objects(对象)列表中,选择要为其生成预签名 URL 的对象。

  5. 对象操作菜单上,请选择使用预签名 URL 共享

  6. 指定您希望的预签名 URL 有效时间长度。

  7. 请选择 Create presigned URL(创建预签名 URL)。

  8. 出现确认时,URL 将自动复制到剪贴板。如果您需要再次复制预签名 URL,您将看到一个按钮,用于复制该 URL。

以下示例 AWS CLI 命令生成一个预签名 URL,以共享 Amazon S3 存储桶中的对象。使用 AWS CLI 时,预签名 URL 的最长过期时间为自创建时起 7 天。要使用此示例,请将 user input placeholders 替换为您自己的信息。

aws s3 presign s3://DOC-EXAMPLE-BUCKET1/mydoc.txt --expires-in 604800

注意

对于 2019 年 3 月 20 日之后启动的所有 AWS 区域,您需要随请求指定 endpoint-urlAWS 区域。有关所有 Amazon S3 区域和端点的列表,请参阅《AWS 一般参考》中的区域和端点

aws s3 presign s3://DOC-EXAMPLE-BUCKET1/mydoc.txt --expires-in 604800 --region af-south-1 --endpoint-url https://s3.af-south-1.amazonaws.com

有关更多信息,请参阅 AWS CLI 命令参考 中的 presign

有关使用 AWS SDK 生成预签名 URL 来共享对象的示例,请参阅使用 AWS SDK 为 Amazon S3 创建预签名 URL

使用 AWS SDK 生成预签名 URL 时,最长到期时间为创建之时起 7 天。

注意

对于 2019 年 3 月 20 日之后启动的所有 AWS 区域,您需要随请求指定 endpoint-urlAWS 区域。有关所有 Amazon S3 区域和端点的列表,请参阅《AWS 一般参考》中的区域和端点

注意

使用 AWS SDK 时,Tagging 属性必须是标题而不是查询参数。所有其他属性都可以作为预签名 URL 的参数传递。

注意

目前,AWS Toolkit for Visual Studio 不支持 Visual Studio for Mac。

  1. 按照《AWS Toolkit for Visual Studio User Guide》中的 Installing and setting up the Toolkit for Visual Studio 中的说明安装 AWS Toolkit for Visual Studio。

  2. 使用以下步骤(《AWS Toolkit for Visual Studio 用户指南》中的连接到 AWS)连接到 AWS。

  3. 在标有 AWS 各区服务浏览器的左侧面板中,双击包含您的对象的存储桶。

  4. 右键单击要为其生成预签名 URL 的对象,然后选择创建预签名 URL...

  5. 在弹出窗口中,设置预签名 URL 的到期日期和时间。

  6. 应根据您选择的对象预填充对象密钥

  7. 选择 GET 可指定此预签名 URL 将用于下载对象。

  8. 选择 Generate(生成)按钮。

  9. 要将此 URL 复制到剪贴板,请选择 Copy(复制)

  10. 要使用生成的预签名 URL,请将该 URL 粘贴到任何浏览器中。

如果您使用的是 Visual Studio 代码,可以使用 AWS Toolkit for Visual Studio Code 生成预签名 URL 来共享对象的,而不需要编写任何代码。有关一般信息,请参阅《AWS Toolkit for Visual Studio Code 用户指南》中的 AWS Toolkit for Visual Studio Code

有关如何安装 AWS Toolkit for Visual Studio Code 的说明,请参阅《AWS Toolkit for Visual Studio Code 用户指南》中的安装 AWS Toolkit for Visual Studio Code

  1. 使用以下步骤(《AWS Toolkit for Visual Studio Code 用户指南》中的连接到 AWS Toolkit for Visual Studio Code)连接到 AWS。

  2. 在 Visual Studio 代码中选择左侧面板上的 AWS 徽标。

  3. 资源管理器下,选择 S3

  4. 选择存储桶和文件,然后打开上下文菜单(右键单击)。

  5. 选择生成预签名 URL,然后设置过期时间(以分钟为单位)。

  6. 按 Enter,预签名 URL 将复制到剪贴板。