Rails Sitemap_generator 使用 aws_fog 配置

Rails Sitemap_generator using aws_fog configuration

我在 heroku 上使用 sitemap_generator gem 和 rails 6。有人告诉我最简单的方法是在亚马逊上使用 s3 并与 aws_fog.

桥接

实施在 gem 方面有详细记录...但我正在努力确保亚马逊配置正确。

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

我配置了一个 s3 实例,我们将其命名为 example,并将其添加到美国东部(俄亥俄州)区域。这一切都非常简单。

“属性”选项卡...应该和不应该 select 编辑什么?我select什么都没有。

权限选项卡。我做了 public,虽然这感觉不对...存储桶用于站点地图,所以它应该 public 对吗?

我按照说明设置了我的区域

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".

任何提示都会很棒...

我也在我的 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)
)