使用预签名 URL 上传对象 - Amazon Simple Storage Service

使用预签名 URL 上传对象

您可以使用预签名 URL 来允许他人将对象上传到您的 Amazon S3 存储桶。使用预签名 URL 将允许在不要求另一方拥有 AWS 安全凭证或权限的情况下进行上传。预签名 URL 受创建它的用户的权限所限制。也即,如果您收到预签名 URL 来上传对象,则仅当该 URL 的创建者拥有上传该对象所需的权限时,您才能上传对象。

当有人使用该 URL 上传对象时,Amazon S3 将在指定的存储桶中创建对象。如果存储桶中已存在具有预签名 URL 中指定的相同键的对象,则 Amazon S3 会将现有对象替换为上传的对象。上传后,存储桶拥有者将拥有该对象。

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

可以使用适用于 Visual Studio 的 AWS Explorer 生成预签名 URL 来上传对象,而不需要编写任何代码。也可以使用 AWS SDK 以编程方式生成预签名 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...

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

  6. 对象键中,设置要上传的文件的名称。您上传的文件必须与该名称完全匹配。如果具有相同对象键的对象已位于存储桶中,Amazon S3 会将现有对象替换为新上传的对象。

  7. 选择 PUT 可指定此预签名 URL 将用于上传对象。

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

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

  10. 要使用此 URL,您可以通过 curl 命令发送 PUT 请求。包括您的文件的完整路径以及预签名 URL 本身。

    curl -X PUT -T "/path/to/file" "presigned URL"

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

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

注意

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