carrierwave で S3 にアップロードをしたいのですが
いろいろさわってるうちに
#<Aws::S3::Errors::AccessDenied: Access Denied>
がでるようになりました
キーやシークレットやパス、権限などいろいろ見直しているのですが全部あってるようにみえます
そこで実際に AWS S3 のどのパスに書き込もうとしてるのか
できるだけローレベルでデバッグする方法はないでしょうか
aws_bucket
store_dir
filename
等をオーバーライドすればそれを組み合わせたパスにアップロードしてくれるはずなのですが
本当にそのパスにアップロードしようとしてるのかを確認する方法がありません
中がブラックボックス過ぎて設定が反映されてるのかどうかもわからず困っています
追記:
def save begin self.store_image! rescue client = image.instance_variable_get(:@storage).instance_variable_get(:@connection).instance_variable_get(:@client) client.put_object({ bucket: image.instance_variable_get(:@aws_bucket), content_type: 'text/plain; charset=UTF-8', key: "images/test.txt", body: "test" }) return false end end
という感じで例外を出してるところで
強引に aws_sdk client を取得して putObject をすると普通に成功します
aws_sdk_client アカウントには
https://qiita.com/tanakaworld/items/196300d556feada5737b
を参考にこの4つを <bucket>/images/* に与えてあります
パスが間違っているとしか思えないんですが…
どのパスにアップロードしようとしてるかをデバッグする方法はないでしょうか…
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。