使用预签名 URL 共享对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用预签名 URL 共享对象

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

有关预签名 URL 的一般信息,请参阅使用预签名 URL 下载和上传对象

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

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

使用 Amazon S3 控制台生成预签名 URL
  1. 登录到Amazon Web Services 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。

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

aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800

注意

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

aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800 --region af-south-1 --endpoint-url https://s3.af-south-1.amazonaws.com

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

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

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

注意

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

注意

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

注意

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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