首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用S3插件解析DefaultUrl中静态资产的url

如何用S3插件解析DefaultUrl中静态资产的url
EN

Stack Overflow用户
提问于 2022-06-23 18:05:06
回答 1查看 16关注 0票数 0

我很难找到通过神殿中的S3插件为公共静态资产生成url URL的正确方法。它的资产是用户化身,它可以是nil,所以我们的想法是使用插件default_url来获取空的化身图像。在文档之后,我来到这里:

代码语言:javascript
复制
class AvatarUploader < Shrine
  plugin :default_url

  Attacher.default_url do |options|
    '/user_avatar.png'
  end
end

但这会生成一个相对URL。我也尝试过使用:host选项,就像这里指出的那样。但是,只有当我硬编码完整的端点URL时,它才能工作,这是不好的。

代码语言:javascript
复制
plugin :default_url, host: "https://my-public-bucket.s3.amazonaws.com"

attacher.url #=> "https://my-public-bucket.s3.amazonaws.com/user_avatar.png" 

其他选项是,在环境变量中设置桶名:

代码语言:javascript
复制
plugin :default_url, host: "https://#{ENV["S3BUCKET_PUBLIC"]}.s3.amazonaws.com"

但我觉得也不好。

是否有一种方法可以通过编程方式直接从神殿创建完整的URL,使用其现有的信任?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-23 18:30:24

要以编程方式创建使用选项散列调用文件所需的URL:

代码语言:javascript
复制
class AvatarUploader < Shrine
  plugin :default_url
  
  Attacher.default_url do |options|
    data = { "id" => "user_avatar.png", "storage" => :bucket_name_from_config }
    shrine_class.uploaded_file(data).url
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72734709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档