Elixir Arc:延长S3标头到期时间

时间:2018-01-25 22:27:28

标签: amazon-s3 elixir phoenix-framework

我使用了elixir的弧附件库:https://github.com/stavro/arc,我希望增加已签名生成的网址的到期时间。

此处设置S3标头的默认到期时间: https://github.com/stavro/arc/blob/3d1754b3e65e0f43b87c38c8ba696eadaeeeae27/lib/arc/storage/s3.ex#L3

在S3的链接请求中产生以下内容: ...&安培; X-AMZ-日期= 20180125T203430Z&安培;的 X-AMZ-过期= 300 &安培; X-AMZ-SignedHeaders =宿主安培; X-AMZ-签名= ...

readme表示您可以通过向上传者添加s3_object_headers方法来延长S3标头的到期时间:

假设这是我需要做的,这里是我添加的内容: def s3_object_headers(version, {file, scope}) do [expires: 600] end 但我仍然得到相同的Amz-Expires值(300)。我也尝试使用:expires_in和:expires_at,因为代码似乎引用了这些值,但得到了相同的结果。

我做错了什么或者没有理解它是如何工作的?

2 个答案:

答案 0 :(得分:0)

我认为阅读signing及其自述文件可能有误 您需要在:expires_in

中定义的:expire_in(或s3_object_headers

答案 1 :(得分:0)

A 1 C 3 B 2 D 4 需要在模块的expires_in函数的最后一个参数中传递,而不是放在url/3中:

s3_object_headers/2