【发布时间】:2018-01-25 22:27:28
【问题描述】:
我正在为 elixir 使用 arc 附件库:https://github.com/stavro/arc,并且我想增加签名生成的 URL 的到期时间。
此处设置了 S3 标头的默认到期时间: https://github.com/stavro/arc/blob/3d1754b3e65e0f43b87c38c8ba696eadaeeeae27/lib/arc/storage/s3.ex#L3
这会在对 S3 的链接请求中产生以下内容: ...&X-Amz-Date=20180125T203430Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=...
readme 表示您可以通过向上传器添加s3_object_headers 方法来延长 S3 标头过期时间:
假设这是我需要做的,这就是我添加的内容:
def s3_object_headers(version, {file, scope}) do
[expires: 600]
end
但我仍然得到相同的 Amz-Expires 值(300)。我也尝试使用 :expires_in 和 :expires_at ,因为代码似乎引用了这些值,但得到了相同的结果。
我做错了什么或未能理解它的工作原理?
【问题讨论】:
-
我相信您需要将
expires_in: 600传递给传递给YourModule.url/3函数的选项。至少这就是我在阅读您链接到的代码和自述文件时得出的结论。你能看看这是否有效吗? -
Dogbert,就是这样 - 你是对的。我只需要重构我的 URL 函数以包含该参数。如果您想创建一个答案,我会认为它是正确的。非常感谢。
标签: amazon-s3 elixir phoenix-framework