Railsアプリで画像をアップロードするペーパークリップバックエンドの管理者だけに見せたいgem。その結果、私はそれらを私的に設定しました。AWS S3にアップロードされたプライベート画像の表示 - シークレットアクセスキーからの署名の作成
次に、特定のリンクを持つ管理者だけがファイルを閲覧できる方法を調べました。これは私がfoundです。
私はこれを試してみましたが、必要な署名を作成するのに苦労しています。式は、上記のリンクに与えられているされています
Signature = URL-Encode(Base64(HMAC-SHA1(YourSecretAccessKeyID, UTF-8-Encoding-Of(StringToSign))));
StringToSign = HTTP-VERB + "\n" +
Content-MD5 + "\n" +
Content-Type + "\n" +
Expires + "\n" +
CanonicalizedAmzHeaders +
CanonicalizedResource;
私は、これはRuby on Railsに上で動作するように取得する必要があり、ライブラリ/モジュール/宝石全く分かりませんでした。私は周りを検索することによってaws-s3 gemについて発見した。私は彼らのwikiを読んで、この「ブラウザからプライベートオブジェクトにアクセスする」を見ました。
私はそれらの宝石をインストールし、私のレールコンソールを開き、それらをテストしようとしました。 AWS S3と接続できましたが、「初期化されていない定数」や「NameError」などのエラーが発生したため、何もできません。
正しい方向へのヒント/ガイダンスがありがとうございます。
最後に、私がしようとしているのは、管理者がブラウザで画像を表示し、ダウンロードしないために使用できるリンクを生成することです。私がこれを読んだことは、それが何をするかである。しかし、それは確かですか、それとも管理者のコンピュータにダウンロードするだけですか?
これは最も簡単な解決策です。必要なのは「aws-sdk」宝石とペーパークリップだけです。 s3を使用するようにペーパークリップオプションを設定し、s3_permissionsを非公開に設定します。「has_attached_file:document、 :s3_permissions =>:private、 :storage => 's3'」 – zarazan