部署在heroku上的Python脚本应该打开一个URL(AWS S3)进行文件下载

2024-10-01 02:20:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用部署在heroku上的flask设置python脚本。此脚本创建一个文件并将其上载/传输到AWS S3。然后脚本生成一个URL,用于从S3下载文件。在本地,一切都很好,但当我想在Heroku中使用它时,什么都不会发生

我尝试使用webbrowser.open()解决此问题

objectUrl = s3_client.generate_presigned_url(ClientMethod='get_object',
    Params={'Bucket': bucket,'Key': key})
response = webbrowser.open(str(objectUrl),new=2,autoraise=1)

urllib.request.urlretrieve()

objectUrl = s3_client.generate_presigned_url(ClientMethod='get_object',Params= 
    {'Bucket': bucket,'Key': key})
response = urllib.request.urlretrieve(str(objectUrl))

我希望如果我在Heroku上执行代码,就像我在本地执行的一样,脚本会打开一个新选项卡并下载文件,或者只是下载它

但是如果我用webbrowser.open()尝试,Heroku日志会为“response”提供以下值

2019-09-26T13:09:06.203012+00:00 app[web.1]: False

通过urllib.request.urlretrieve()我得到:

2019-09-26T14:11:44.853183+00:00 app[web.1]: ('/tmp/tmp6jf3cx09', <http.client.HTTPMessage object at 0x7fcc15cd6ba8>)

对于最后一个,我希望它在本地下载该文件,但我认为这是Heroku的tmp文件夹

我想将此网站与iOS和Mac/Windows一起使用,以便在每个设备上开始下载


Tags: 文件脚本clientherokuobjects3responserequest