Amazon S3 バケットに多数のビデオがあり、ウェブサイトにリストとして表示したいと考えています。リスト内の任意の項目をクリックすると、ビデオがダウンロードされます。
Python と Flask を使用しています。現在、URL と名前が画面に表示されていますが、ダウンロードできません。Python では、S3 キーで「get_file」関数を使用するのは簡単ですが、このメソッドを呼び出す方法がわかりません。簡単にできるように思えますが、html の「onClick」で JavaScript を使用する必要があるかもしれません。
私はjavascriptが初めてなので、それはオプションかもしれませんが、組み込みのbotoメソッドにアクセスしたいだけです。
現在、私は鍵を持っています:
from boto.s3.connection import S3Connection
def get_video_keys():
key = local_settings.local_vars['AWS_ACCESS_KEY_ID']
skey = local_settings.local_vars['AWS_SECRET_ACCESS_KEY']
bucket = local_settings.local_vars['VIDEO_BUCKET_NAME']
conn = S3Connection(key, skey)
mybucket = conn.get_bucket(bucket)
keys = mybucket.get_all_keys()
return keys
また、Jinja2 テンプレートを使用してそれらを表示するための html もあります。
{% for key in keys %}
<li><div><a href="{{ key.generate_url(3600) }}"> {{ key.name }}</a></div></li>
{% endfor %}
オンラインで検索すると、クリック イベントに応答してダウンロードするのではなく、すべてのファイルをダウンロードする方法しか見つかりませんでした。
2013 年 9 月 5 日更新
これは実際には Firefox では問題なく動作しますが、Chrome/Chromium では何もしていません。