首页 > 解决方案 > Rails Active Storage 推送到 DigitalOcean Spaces

问题描述

嗨,我正在尝试获取活动存储以推送到 DigitalOcean 空间。但是,我发现推送 url 正在更改为 amazonaws.com,即使我已将端点定义为数字海洋。

这是我在 storage.yml 中的内容

amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  region: sfo2
  bucket: redacted_bucket_name
  endpoint: https://sfo2.digitaloceanspaces.com

当我尝试上传文件时,出现以下错误:

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

  https://redacted_bucket_name.s3.sfo2.amazonaws.com/a8278561714955c23ee99

在我的 gemfile 中,我有:gem 'aws-sdk-s3

我已按照此处找到的说明进行操作,但仍然出现错误。有没有可能有一种新的方法来做到这一点?

标签: ruby-on-railsrails-activestorage

解决方案


几天前我自己设置了这样的东西。当您检查 URLhttps://redacted_bucket_name.s3.sfo2.amazonaws.com/a8278561714955c23ee99时,它与您设置的实际端点不同https://redacted_bucket_name.sfo2.amazonaws.com/a8278561714955c23ee99

该错误是由您击中的无效端点引起的,s3就在.sfo2偏移端点之前。您是否碰巧添加s3到您的空间配置中?检查您的空间仪表板并尝试正确设置端点。


推荐阅读