FineUploader:更改预设 ACL 值时 S3 访问被拒绝响应

2024-03-08

我有一个 S3 Fine Uploader 实现,运行良好。默认情况下,它可以正常上传文件,但它们是私有的。根据 FineUploader 的文档,我将 objectProperties 选项添加到 FineUploader 的客户端 js 配置中,以使文件公开:

    objectProperties: {
        acl: "public-read"
    },

但是我现在在上传过程中收到来自 s3 的访问拒绝响应:

<Error><Code>AccessDenied</Code><Message>Access Denied</Message>
<RequestId>(removed)</RequestId>
<HostId>(removed)</HostId>
</Error>

如果有帮助,这是我的 CORS 存储桶策略:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>content-type</AllowedHeader>
        <AllowedHeader>origin</AllowedHeader>
        <AllowedHeader>x-amz-acl</AllowedHeader>
        <AllowedHeader>x-amz-meta-qqfilename</AllowedHeader>
        <AllowedHeader>x-amz-date</AllowedHeader>
        <AllowedHeader>authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

这是请求的原始 HTTP 转储:

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Content-Length:39643
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryR70e49pqaNEGSsT1
Host:quickfunnel.s3.amazonaws.com
Origin:http://mysite.local
Referer:http://mysite.local/dashboard/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Request Payload
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="key"

d50e0c4f-1886-48bb-b077-075fca79b6dc.JPG
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="AWSAccessKeyId"

ACCESS-KEY-REMOVED
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="Content-Type"

image/jpeg
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="success_action_status"

200
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="acl"

public-read
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="x-amz-meta-qfclientid"

1
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="x-amz-meta-qqfilename"

Capture.JPG
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="policy"

eyJleHBpcmF0aW9uIjoiMjAxNC0wMS0wMlQyMzo0MzoxMC4wNDVaIiwiY29uZGl0aW9ucyI6W3siYWNsIjoicHVibGljLXJlYWQifSx7ImJ1Y2tldCI6InF1aWNrZnVubmVsIn0seyJDb250ZW50LVR5cGUiOiJpbWFnZS9qcGVnIn0seyJzdWNjZXNzX2FjdGlvbl9zdGF0dXMiOiIyMDAifSx7ImtleSI6ImQ1MGUwYzRmLTE4ODYtNDhiYi1iMDc3LTA3NWZjYTc5YjZkYy5KUEcifSx7IngtYW16LW1ldGEtcWZjbGllbnRpZCI6IjEifSx7IngtYW16LW1ldGEtcXFmaWxlbmFtZSI6IkNhcHR1cmUuSlBHIn0sWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIjAiLCIxNTAwMDAwMCJdXX0=
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="signature"

K7FC4Toe/xmr0SKGOTy6NG+morw=
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="file"; filename="Capture.JPG"
Content-Type: image/jpeg


------WebKitFormBoundaryR70e49pqaNEGSsT1--

最有可能的是,您没有正确配置客户端 IAM 组。为了偏离默认 ACL“私有”,与请求关联的 IAM 组必须能够执行“s3:PutObjectAcl”操作。您需要确保与您的客户端密钥关联的 IAM 组具有此权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FineUploader:更改预设 ACL 值时 S3 访问被拒绝响应 的相关文章

随机推荐

  • 在c#中从.xml文件获取多个属性

    我有一个具有以下结构的 xml 文件 我想要获取特定 EndPointChannelID 的属性值 0 05 等 我目前能够获取该值 但它适用于每个 EndPointChannelID 而不是所需的值 另一个问题是读数并不总是 6 如何实现
  • Monotouch - QLPreviewController 问题

    我正在尝试使用 QLPreviewController 查看 PDF 文件并发送它 但预览 PDF 文档后操作按钮出现问题 当我按下操作按钮 右上角 时 应用程序崩溃 我得到 未处理的托管异常 抛出 Objective C 异常 名称 NS
  • 在 Kiwi (iOS) 中模拟代表的期望

    问题的简短版本 以下 Kiwi iOS 模拟期望有什么问题 mockDelegate should receive selector connectionDidSucceedWithText andStatus withArguments
  • 进程完成,退出代码 137(被信号 9 中断:SIGKILL):检索图像数据

    我从人脸图像中提取特征 然后使用不同的相似性度量将特征与其他图像进行比较 以前 图像名称列表很小 但工作正常 代表每个图像的整个列表我将这些列表放入 json 文件中并在 python 文件中使用 当我增加图像时 PyCharm 会终止我的
  • 枚举作为实例变量

    如果您有一个枚举 例如 enum Coffee BIG SMALL 以及一个具有像枚举这样的实例变量的类 public class MyClass private Coffee coffee Constructor etc 为什么可以在构造
  • 为 div 创建线性透明渐变

    我想为 div 创建一个线性透明渐变 有什么办法可以用 jquery 做到这一点吗 或者我应该使用其他库 例如 raphaeljs 我想达到如下效果 为什么不保持轻便并兼容浏览器呢 div backgroud image url image
  • 如何在 OS X Cocoa 应用程序中向 Google 授权用户

    我在用Firebase https www firebase com在我的 OS X 应用程序中 我正在尝试添加 Google 身份验证 这是一iOS 示例 https www firebase com docs ios guide log
  • Flutter DataTable - 点击行

    我正在使用 Flutter DataTables 显示购物车中的商品列表 现在我想编辑任何选定行的数量 有没有办法获取用户点击的行信息 以下是我的数据表的完整代码 class DataTableSampleState extends Sta
  • Visual Studio Code 项目名称

    使用VS Code进行Java调试 必须有projectName定义在启动 json用于在调试时使用监视窗口的文件 如何确定和 或定义 Java 项目的名称 我总是收到错误消息 无法解析类路径 项目 不是有效的 java 项目 这是我的 l
  • 连接到上游时 docker nginx 连接被拒绝

    我使用闪亮的服务器在端口 3838 上构建一个 Web 应用程序 当我在服务器中使用 nginx 时 它运行良好 但是当我在服务器上停止 nginx 并尝试使用 docker nginx 时 我发现该站点出现 502 Bad Gate Wa
  • 在 Java 中检查字符串是否为 ISO 语言的 ISO 国家/地区的更简洁方法

    假设有两个字符String 这应该代表ISO 639国家或语言名称 你知道 Locale http docs oracle com javase 7 docs api java util Locale htm类有两个功能getISOLang
  • 如何使用 node.js superagent 发布 multipart/form-data

    我正在尝试将超级代理发布请求中的内容类型发送到 multipart form data var myagent superagent agent myagent post http localhost endpoint set api ke
  • 将字符串转换为整数并获取等于 0 的 null

    我可以知道有什么简单的方法来执行此操作吗 当 a text 为 null 时 它将出错 如果我不一一检测 可以用简单的代码将a text null转换为0吗 Dim count1 As Integer 0 count1 Convert To
  • 我可以逆转数组到指针的衰减过程吗?

    将指向数组第一个元素的指针转换为指向整个数组的指针是否合法 template
  • 如何让 Kivy 显示文本输入框?

    我目前正在 Kivy 中为一个学校项目编写一个应用程序 我不得不深入使用 Kivy 我已经为文本输入编写了 kv 代码 您可以在下面看到 AnswerInput
  • iOS 8 Core 蓝牙未发现外设

    我在让 Core Bluetooth 发现 iOS 8 上的外围设备时遇到问题 相同的代码在 iOS 7 设备上运行良好 最初 我认为这可能是一个权限问题 因为我一直在做一些 iBeacon 工作 并且 iOS 8 上的核心位置权限发生了一
  • 字符串无法识别? C4430:缺少类型说明符 - 假定为 int

    我定义了这个类 但它根本不起作用 ifndef LIBROS H define LIBROS H include Articulo h class Libros public Articulo public Libros Libros st
  • 为什么这个使用移位的交换宏不适用于负数?

    我在我拥有并需要扩展的内置库中找到了一些代码 但它似乎被打破了 define BSWAP16 x x gt gt 8 x lt lt 8 其功能与以下不同 builtin bswap16 这个程序证明了这一点 include
  • 是什么原因导致 updateUIView() 在这段代码中被调用?

    我知道 State 变量的更改通知 Binding 状态已更改 但是什么导致 updateUIView 方法被调用 Binding 和调用之间显然存在一些隐藏的联系 但它是如何工作的呢 Experiment Map View swift i
  • FineUploader:更改预设 ACL 值时 S3 访问被拒绝响应

    我有一个 S3 Fine Uploader 实现 运行良好 默认情况下 它可以正常上传文件 但它们是私有的 根据 FineUploader 的文档 我将 objectProperties 选项添加到 FineUploader 的客户端 js