Google cloud storage 使用从URI Google云存储创建的Blob下载文件时出错

Google cloud storage 使用从URI Google云存储创建的Blob下载文件时出错,google-cloud-storage,Google Cloud Storage,我能够打印桶名、blob信息和文件名。但是当我试图下载图像时,它给了我一个错误 client = storage.Client() blob = Blob.from_string("gs://current-project/images/myimage.jpeg") print(blob.bucket.name) fileName = blob.name.split('/')[-1] print(fileName) print(blob) blob.download_to_f

我能够打印桶名、blob信息和文件名。但是当我试图下载图像时,它给了我一个错误

client = storage.Client()
blob = Blob.from_string("gs://current-project/images/myimage.jpeg")
print(blob.bucket.name)
fileName = blob.name.split('/')[-1]
print(fileName)
print(blob)
blob.download_to_filename('test1.jpeg')

我不确定我错过了什么。如果我使用它来下载图像,并显式指定bucket名称并从bucket创建blob对象,那么效果很好。我不理解错误。

您出现此错误是因为您使用的是由本地构造函数创建的
blob
blob=blob.from\u string
。使用,您不需要从bucket中检索blob对象,只需在本地环境中创建一个具有此名称的空对象

正如您所述,来自的代码示例工作正常,因为它在调用方法时使用内部API从中获取blob

AttributeError: 'NoneType' object has no attribute '_connection'

哦,谢谢你。我可以通过在
Blob.from\u string
中将客户机作为参数传递来解决这个问题。
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(source_blob_name)