【问题标题】:Rails Sitemap_generator using aws_fog configurationRails Sitemap_generator 使用 aws_fog 配置
【发布时间】:2020-06-09 22:43:59
【问题描述】:

我在 heroku 上使用带有 rails 6 的 sitemap_generator gem。有人告诉我,最简单的方法是在 amazon 上使用 s3 并与 aws_fog 桥接。

gem 方面的实现有据可查……但我正在努力确保亚马逊配置正确。

我搜索了很多,但找不到任何东西,所以我希望有人能帮忙

我配置了一个 s3 实例,将其命名为示例,并将其添加到美国东部(俄亥俄)地区。这一切都很简单。

“属性”选项卡...应该选择什么,不应该选择什么?我什么都不选。

“权限”选项卡。我公开了,虽然这感觉不对……存储桶是用于站点地图的,所以它应该是公开的吧?

我根据文件设置了我的区域

SitemapGenerator::Sitemap.default_host = "https://www.example.com"
SitemapGenerator::Sitemap.public_path = 'tmp/'
SitemapGenerator::Sitemap.sitemaps_host = "https://example.s3.amazonaws.com/"
SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/'
SitemapGenerator::Sitemap.adapter = SitemapGenerator::S3Adapter.new(fog_provider: 'AWS',
  aws_access_key_id: Rails.application.credentials.aws[:access_key_id],
  aws_secret_access_key: Rails.application.credentials.aws[:secret_access_key],
  fog_region: 'us-east-2')

当我在本地主机上点击 rake sitemap:refresh:no_ping 时,我得到 :status_line => "HTTP/1.1 301 Moved Permanently\r\n"

我想也许我需要将站点地图文件夹添加到 s3 实例,所以我这样做了,但我仍然得到 :status_line => "HTTP/1.1 301 Moved Permanently\r\n"。

任何提示都会很棒...

【问题讨论】:

    标签: ruby-on-rails amazon-web-services amazon-s3 sitemap-generator-gem


    【解决方案1】:

    我还在我的 rails 应用程序(heroku 托管和 rails 6)上使用了站点地图生成器 gem。我在config/sitemap.rb 中有以下代码,在SitemapGenerator::Sitemap.create 之前。我已经用aws-sdk-s3 gem 配置了它,它是这样的:

    require 'aws-sdk-s3'
    SitemapGenerator::Sitemap.default_host = "https://www.example.com"
    SitemapGenerator::Sitemap.sitemaps_host = 'https://example.s3.eu-west-2.amazonaws.com/'
    SitemapGenerator::Sitemap.adapter = SitemapGenerator::AwsSdkAdapter.new(Rails.application.credentials.dig(:amazon, :s3, :bucket),
                                                                            aws_access_key_id: Rails.application.credentials.dig(:amazon, :s3, :access_key_id),
                                                                            aws_secret_access_key: Rails.application.credentials.dig(:amazon, :s3, :secret_access_key),
                                                                            aws_region: Rails.application.credentials.dig(:amazon, :s3, :region)
    )
    

    【讨论】:

    • 感谢您的回复...但这对实施的 aws 方面没有帮助...您是否添加了文件夹“站点地图”
    • 我刚刚在 AWS 上创建了一个可以公开访问的存储桶,我可以直接查看它。所以当我尝试生成它的命令时,我可以“看到”上传的站点地图文件。
    • 很棒的伙伴,真的很有帮助,可能会转移到 sdk gem。谢谢
    • 我仍然无法让它工作......我只是被拒绝访问
    • @JemBuilt 这与公共权限有关。查看如何在此处公开havecamerawilltravel.com/photographer/… 并确保您尝试的是正确的区域。
    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2013-02-20
    • 2011-03-28
    • 2014-10-16
    • 2017-03-18
    相关资源
    最近更新 更多