Python 谷歌存储桶下载速度慢
我在从谷歌存储桶下载文件时遇到了一个奇怪的问题 如果我在Linux上运行此代码,下载一个64kb的PDF文件大约需要5分钟Python 谷歌存储桶下载速度慢,python,google-cloud-platform,google-cloud-storage,download,Python,Google Cloud Platform,Google Cloud Storage,Download,我在从谷歌存储桶下载文件时遇到了一个奇怪的问题 如果我在Linux上运行此代码,下载一个64kb的PDF文件大约需要5分钟 def generate_document(request): if not ensure_valid_user(request): return redirect('/?result=0') try: long_name = request.GET['long_name'] short_name = req
def generate_document(request):
if not ensure_valid_user(request):
return redirect('/?result=0')
try:
long_name = request.GET['long_name']
short_name = request.GET['short_name']
file_data, size = CloudStorageManager.get_file(long_name)
response = HttpResponse(file_data, content_type='application/octet-stream')
response['Content-Disposition'] = 'attachment; filename={}'.format(short_name)
response['Content-Length'] = size
return response
except Exception as ex:
print(ex)
以下是来自CloudStorageManager
类的重要方法:
class CloudStorageManager:
# private key file, used for local testing
storage_client = storage.Client.from_service_account_json(
'CloudStorageAPIKey.json')
bucket = storage_client.get_bucket("my.private.bucket")
@staticmethod
def get_file(long_name):
bucket = CloudStorageManager.bucket
blob = bucket.blob(long_name)
file_string = blob.download_as_string()
return file_string, blob.size
我迷茫的是,在Linux中,如果我从我的generate_document()
方法中注释掉response['Content-Length']=size
,下载会以正常速度进行,但是当我回家进入Windows并对该行进行注释时,下载会再次花费5分钟,并与包含的行一起工作
有人能帮我解释一下哪里出了问题吗?很有趣 我通过分配我的回复的
内容长度
解决了这个问题:
response['Content-Length']=size
到
response['Content-Length']=len(response.Content)
No.blob.size==None
如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接。-@RADO这与我的问题直接相关,这是我找到的解决问题的方法,我之所以没有删除这个问题(因为我找到了自己的答案),是因为我觉得我所做的只是一个绷带修复。不过,我确实删除了重复的问题。我想知道为什么需要这个修复。