gpt4 book ai didi

ruby-on-rails - Rails 4 SSL 错误停止使用回形针直接上传 s3

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:23 27 4
gpt4 key购买 nike

我一直在关注 this guide关于使用回形针以及 this blog post 直接上传到 S3这表明对先前链接的指南进行了一些有用的调整。我唯一的区别是我的模型的名称是照片而不是文档。

我正在将原始文件成功上传到我的存储桶,但 photo.rb(指南中的 document.rb)中的 before_create 操作在此行失败:

direct_upload_head = s3.buckets[Rails.configuration.aws[:bucket]].objects[direct_upload_url_data[:path]].head

rails 服务器控制台显示以下错误:

OpenSSL::SSL::SSLError (hostname does not match the server certificate): app/models/photo.rb:56:in `set_upload_attributes'

我之前收到与 DIRECT_UPLOAD_URL_FORMAT 验证相关的错误,由于格式不正确,所以我稍微修改了它以匹配回形针生成的 direct_upload_url。我的修改版本是:

DIRECT_UPLOAD_URL_FORMAT = %r{\Ahttps:\/\/#{Rails.configuration.aws[:region]}\.amazonaws\.com\/#{Rails.configuration.aws[:bucket]}\/(?<path>uploads\/.+\/(?<filename>.+))\z}.freeze

这与控制台中显示的 url 格式相匹配:

"photo"=>{"direct_upload_url"=>"https://s3-eu-west-1.amazonaws.com/mybucketname/uploads%2F1389613985667-mo4ncxxus0q0vn29-d78ac9dc4f18fa612e33c87ec9ad0f4e%2Fmiddy.jpg"}

在修改 DIRECT_UPLOAD_URL_FORMAT 之后,我让它通过了验证并出现了 SSL 错误。

我注意到,在控制台中显示的 url 作为发布的 url 在“上传”和文件夹名称之后没有显示正斜杠,但直到那时它们才会显示。这可能与它不符合 SSL 要求有关吗?

除必要时将“文档”切换为“照片”外,所有其他代码均与指南中的内容一致。

我可以做些什么来满足 SSL 要求吗?

编辑:我还应该提到,我在引用的 url 中放置“mybucketname”的地方我的实际存储桶名称与该格式匹配,没有点或破折号等,只有小写字母。

最佳答案

事实证明,我的问题是由我为存储桶选择的区域引起的。

本教程设置为使用仅适用于美国标准区域的路径样式 URL。

我为我的开发存储桶选择了一个欧盟地区(爱尔兰),但未能成功修改代码以使用非美国标准存储桶所需的域样式 URL。

我在 Amazon 文档中的“Bucket Access”标题下找到了信息: http://docs.aws.amazon.com/AmazonS3/latest/dev/LocationSelection.html

我对我的代码现在的工作方式感到满意,但我会继续研究如何修改它以使用 Ireland bucket 区域来减少开发过程中的延迟。

关于ruby-on-rails - Rails 4 SSL 错误停止使用回形针直接上传 s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091338/

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