4

私はAmazonS3を使用して、ユーザーアカウントのユーザーコンテンツを保存および提供しています。ファイルをインライン(画像のURLがブログの投稿などに含まれる場合があります)またはダウンロードとして提供する機能が必要です。デフォルトでは、ファイルをS3バケットにアップロードするとき、ファイルにはContent-Dispositionが設定されていません(ブラウザーがファイルMIMEを認識する限り、インラインでサーバーを使用するため、これで問題ありません)が、Content-Dispositionを設定する必要がある場合があります。ファイルをダウンロードするための添付ファイルの処理。

Rails / S3 gemを使用して、Amazonにリクエストを送信して、そのリクエストに対してContent-Dispositionを添付ファイル(またはその逆)に設定してファイルを送信するように指定することはできますか?おそらく、ある種のトークンを使用する可能性があります(リクエストのトークンを参照して、通常は認証された読み取りに使用されます...この状況でも役立つかどうか疑問に思っています)?S3 gemを使用して、各ファイルのContent-Dispositionを設定および保存する方法を知っていますが、ファイルが常にダウンロードされ、インラインのイメージとして使用できませんでした(テストされていません)。

2つのファイル(1つはContent-Disposition ='download'セットがある場合とない場合)がない場合、何かアイデアはありますか?前もって感謝します。

PS I rails Rails 2、attachment_fu、aws-s3 gemを使用しています(上記のアプリははるかに大きな、すでに実行中のアプリの一部であり、aws-s3とaws_right gemの間に競合が存在することがわかっているため、これらを変更できません)

4

2 に答える 2

4

誰かがこの古い投稿に遭遇した場合に備えて、AmazonのAPIで、S3に保存されているファイルのContent-Dispositionを変更できるようになりました。ここで発表を読んでください。

于 2012-05-11T02:00:07.613 に答える
1

Content-Dispositionはアップロード時に設定されると思います。したがって、それぞれが独自のContent-Dispositionを持つファイルの2つのコピーが必要ない場合、1つの方法は、send_file http://api.rubyonrailsを使用してコントローラーからファイルをストリーミングすることです。 .org / classes / ActionController / Streaming.html#method-i-send_file

于 2011-02-09T03:22:42.280 に答える