gpt4 book ai didi

c# - 亚马逊 s3 : direct upload vs presigned url

转载 作者:行者123 更新时间:2023-12-04 03:00:31 24 4
gpt4 key购买 nike

我正在使用适用于 .NET 的 AWS 开发工具包,并且正在寻找一种让用户直接上传到 s3 存储的方法。

我遇到了 aws 提供的两种不同方式:

基于浏览器的上传:https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-authentication-HTTPPOST.html

和预先签名的网址:https://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjectPreSignedURLDotNetSDK.html

似乎预先签名的 url 更容易,因为 aws sdk 中已经存在一种方法来生成一个 url 以传递给客户端,让他将对象直接放入存储桶(与浏览器上传相比,它似乎也很轻松,因为它没有” t 需要在帖子表单中浏览器上传想要的所有 key )。

但我想知道为什么实际上有两种不同的方法。每一种的优点和缺点是什么?

最佳答案

无论您是想使用 REST API 还是 AWS 开发工具包与 S3 交互,这完全归结为重点。

在这两种情况下,除非存储桶是公开的,否则您需要证明(验证/签名-请求)您的身份。

a) 如果您要使用 REST API,为了证明身份,您需要使用“AWS Signature version 4”对您的请求进行签名。 '(已弃用的版本 2 也在那里),其中包括三种方法(您列出了一种)

  • 对请求进行身份验证:使用授权 header (AWS 签名版本 4)
  • 对请求进行身份验证:使用查询参数(AWS 签名版本 4)
  • 对请求进行身份验证:使用 POST(AWS 签名版本 4)基于浏览器的上传

  • b) 如果您打算使用 AWS SDK,您应该让 SDK 来完成签字仪式(流程)。所以选择直接使用 SDK 对请求进行签名

    (Part of the question) It seems also painless compared to browser upload since it doesn't require all the keys browser upload wants in the post form<



    对于下面的代码, s3Client已经从 AWS-CLI-Profile(如果运行本地/笔记本电脑)、IAM 角色(如果是 EC2、lambda 等)获得您的凭据
    string url = s3Client.GetPreSignedURL(request);

    关于c# - 亚马逊 s3 : direct upload vs presigned url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49625833/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com