【问题标题】:asset_sync not uploading to S3资产同步未上传到 S3
【发布时间】:2013-10-14 21:47:06
【问题描述】:

我无法使用asset_sync 将我的资产上传到S3

production.rb

config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3-eu-west-1.amazonaws.com"
config.assets.digest = true
config.assets.enabled = true
config.assets.initialize_on_precompile = true

asset_sync.rb

if defined?(AssetSync)

 AssetSync.configure do |config|
  config.fog_provider = 'AWS'
  config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID']
  config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
  config.fog_directory = ENV['FOG_DIRECTORY']
  config.fog_region = 'eu-west-1'

 end
end

heroku 配置

AWS_ACCESS_KEY_ID:   XXX
AWS_SECRET_ACCESS_KEY: XXX
FOG_DIRECTORY: bucket_name
FOG_PROVIDER:  AWS
FOG_REGION: 'eu-west-1'

$export

declare -x AWS_ACCESS_KEY_ID= XXX
declare -x AWS_SECRET_ACCESS_KEY= XXX
declare -x FOG_DIRECTORY="bucket_name"
declare -x FOG_PROVIDER="AWS"

http://blog.firmhouse.com/complete-guide-to-serving-your-rails-assets-over-s3-with-asset_sync

那些推heroku资产指向//bucket_name.s3-eu-west-1.amazonaws.com/assets/icons/name_xxxxxxxxxx.png 并且在运行$rake assets:precompile 时,文件不会上传到 S3 并且只能在本地进行预编译。任何想法 ?非常感谢。

编辑:

我刚刚将 Gemfile 更改为:

  group :assets do
   gem 'asset_sync'
  end

到全球的宝石

 gem 'asset_sync'

现在我收到警告消息[WARNING] fog: followed redirect to bucket_name.s3-external-3.amazonaws.com, connecting to the matching region will be more performant

我想我可以解决这个问题,但只有 css 文件被上传。而不是 js 文件和图像。

【问题讨论】:

标签: ruby-on-rails heroku amazon-s3 asset-sync


【解决方案1】:

您的 bucket_name 必须是您在 S3 上的存储桶

您应该更改这些命令:

Heroku
FOG_DIRECTORY: your_bucket_real_name

Local
declare -x FOG_DIRECTORY=your_bucket_real_name

另外,您应该在 production.rb 文件中更改此设置:

config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"

我认为这将解决您的问题。我在 EU-West 上使用 S3,设置完全相同(除了我引用的差异),它在大多数情况下都在工作:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2021-05-10
    • 2015-12-01
    • 1970-01-01
    • 2021-05-11
    相关资源
    最近更新 更多