Не удается указать конечную точку digitalocean в адаптере sitemap_generator s3 aws - PullRequest
1 голос
/ 17 апреля 2020

Я использую sitemap_generator в нашем приложении Rails и пытаюсь создать и загрузить карты сайта в пространства DigitalOcean (который, насколько я знаю, совместим с s3), но я не могу переопределить атрибут конечной точки в адаптер карты сайта, поэтому он всегда предполагает, что моя конечная точка - amazon, а не digitalocean

Я получаю ошибку:

Aws::Errors::NoSuchEndpointError: Encountered a `SocketError` while attempting to connect to:

  https://BUCKET_NAME.s3.XXXX.amazonaws.com/sitemaps/en/english.xml.gz

This is typically the result of an invalid `:region` option or a
poorly formatted `:endpoint` option.

Мой код в конфигурации sitemap.rb для этой части:

SitemapGenerator::Sitemap.adapter = SitemapGenerator::AwsSdkAdapter.new(
  ENV["BUCKET_NAME"],
  aws_access_key_id: ENV["S3_KEY"],
  aws_secret_access_key: ENV["S3_SECRET"],
  aws_endpoint: "https://XXXX.digitaloceanspaces.com",
  aws_region: 'XXXX'
)

Я пытался использовать другой адаптер, но получаю еще более неоднозначную ошибку (по-видимому, то же самое, не удается подключиться)

SitemapGenerator::Sitemap.adapter = SitemapGenerator::S3Adapter.new(
  aws_access_key_id: ENV["S3_KEY"],
  aws_secret_access_key: ENV["S3_SECRET"],
  fog_provider: 'AWS',
  fog_directory: ENV["BUCKET_NAME"],
  endpoint: "https://XXXX.digitaloceanspaces.com",
  fog_region: 'XXXX'
)

1 Ответ

0 голосов
/ 03 мая 2020

Я считаю, что проблема в том, что адаптер AWS sdk для этого драгоценного камня в настоящее время не поддерживает опцию "конечной точки". Вот поддерживаемые в настоящее время параметры :

def initialize(bucket, options = {})
  @bucket = bucket
  @aws_access_key_id = options[:aws_access_key_id]
  @aws_secret_access_key = options[:aws_secret_access_key]
  @aws_region = options[:aws_region]
end

Параметр конечной точки - это то, что указывает AWS sdk переопределить конечную точку службы по умолчанию для использования DigitalOcean вместо AWS: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Endpoint.html

Чтобы получить адаптер AWS sdk гема sitemap_generator для работы с пространствами DigitalOcean, необходимо объединить новый запрос на извлечение, добавляющий параметр конечной точки.

...