7

以下の手順に従って、 asset_syncgemを使用してアセットをAmazonのAWSS3にアップロードするようにrailsアプリをセットアップしようとしています。私のアプリはS3に画像をアップロードできるので、S3のものが正しく構成されていることはわかっています。私はすべての設定が正しいと確信しています:

FOG_DIRECTORY => mybucketname
FOG_PROVIDER  => AWS
FOG_REGION    => s3-us-west-2

それでも私はエラーを受け取り続けます:

-bash> heroku run rake assets:precompile --remote staging
Running rake assets:precompile attached to terminal... up, run.1
AssetSync: using default configuration from built-in initializer
mkdir -p /app/public/assets
...
mkdir -p /app/public/assets
AssetSync: Syncing.
rake aborted!
getaddrinfo: Name or service not known                                # <-- error

ローカルでコンパイルすると、わずかに異なるエラーが発生します。

-bash> bundle exec rake assets:precompile
AssetSync: using default configuration from built-in initializer
mkdir -p /Users/bart/Dev/MyApp/myapp/public/assets
...
mkdir -p /Users/bart/Dev/MyApp/myapp/public/assets
AssetSync: Syncing.
rake aborted!
getaddrinfo: nodename nor servname provided, or not known             # <-- error
4

1 に答える 1

10

実行時の依存関係の1つであるFogの「connection」行までエラーを追跡しましたが、正しく設定されていないことがわかりました。私の場合、地域はであるはずでしたが、ではありませんでした。asset_syncFOG_REGIONus-west-2s3-us-west-2

S3アカウントを設定してからしばらく経ちました。そのため、最初にAWS S3コンソールにログインし、バケット名をクリックしてから[プロパティ]をクリックして、使用しているリージョンを特定しようとしました。そこでは、その地域はオレゴンとしてリストされています。まあ、それはうまくいきませんでした。そこで、アセットに到達し、その「プロパティ」を検索して「リンク」が表示されるまで、既存のバケットの1つのオブジェクトとフォルダのブラウザをクリックしました。

https:// s3-us-west-2 .amazonaws.com / mybucketname / uploads / mymodel / image / 1135 / myimage.jpg

Fogがs3-プレフィックスを追加してs3-us-west-2いることに気付くまで、それは正しいと確信していました。

とにかく、名前で地域(オレゴンなど)を見つけたら、このS3地域のリストで検索できることがわかりました([場所の制約]列の下の名前です)。

これが誰かに役立つことを願っています。

于 2012-08-03T16:07:18.240 に答える