- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过此代码将文件从 Android 设备上传到 S3 存储桶
TransferUtility trasnferManager = new TransferUtility(s3, context);
trasnferManager.upload(..,..,..);
之后,我将 lambda 触发器附加到 S3:ObjectCreated 事件。
执行 lambda 时,我尝试通过 S3.getObject() 函数获取文件。不幸的是,有时我会收到“NoSuchKey:指定的 key 不存在:”错误。之后 lambda 重试几次并成功获取文件并继续执行。
在我看来,lambda 函数是在 S3 中的文件可用之前执行的?但这不应该是设计造成的。触发器应在 S3 上的文件上传完成后触发。
根据2015年8月4日公告:
Amazon S3 buckets in all Regions provide read-after-write consistency for PUTS of new objects and eventual consistency for overwrite PUTS and DELETES.
Read-after-write consistency allows you to retrieve objects immediately after creation in Amazon S3.
但在此之前:
All regions except US Standard (renamed to US East (N. Virginia)) supported read-after-write consistency for new objects uploaded to Amazon S3.
我的存储桶位于美国东部(弗吉尼亚北部)区域,并且是在2015 年 8 月 4 日之前创建的。我不知道这可能是问题所在......
编辑:2016年10月20日
根据documentaion - EVENTUALLY CONSISTENT READ 操作可能会返回NO RESULT,即使之前已完成两个或多个WRITE 操作。
在此示例中,W1(写入 1)和 W2(写入 2)均在 R1(读取 1)和 R2 开始之前完成(读2)。为了获得一致的读取,R1 和 R2 都返回颜色 = ruby 色。为了最终一致读取,R1 和 R2 可能返回颜色 = 红色、颜色 = ruby ,或没有结果,具体取决于数量已过去的时间。
最佳答案
有时,当文件很大时,会使用分段上传的方式进行上传,并在文件完全上传之前向 lambda 发送触发器。推测与触发Lambda函数的事件有关。在 lambda 函数的事件字段中,确保将 put 和 Complete 分段上传添加到事件中。
关于amazon-s3 - 附加到 S3 ObjectCreated 事件的 AWS Lambda 返回“NoSuchKey : The specified key does not exist:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992170/
我是一名优秀的程序员,十分优秀!