[英]How do I create a list of files stored in my Amazon S3 bucket and display them as download links?
我在Amazon S3存儲桶中有很多視頻,我想將它們作為列表顯示在我的網站上。 單擊列表中的任何項目將下載視頻。
我正在使用Python和Flask。 我目前在屏幕上顯示的網址和名稱,但無法下載。 在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
還有一些html使用Jinja2模板顯示它們。
{% for key in keys %}
<li><div><a href="{{ key.generate_url(3600) }}"> {{ key.name }}</a></div></li>
{% endfor %}
在線查看僅找到了下載所有文件的方法,而不是下載響應單擊事件的方法。
更新9/5/13
這實際上在Firefox上可以正常工作,但在Chrome / Chromium中卻無能為力。
您可以使用generate_url生成要下載的URL。
例如:
urls = [key.generate_url(100) for key in keys]
然后,您將獲得一些URL,這些URL將在100秒后失效。
當您有一些特殊字符時,請使用urllib.quote對其進行轉義:
new_urls = [urllib.quote(url) for url in urls]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.