AttributeError'NoneType'对象没有属性'upload_from_filename'

时间:2018-07-20 09:53:40

标签: python firebase google-cloud-platform

我在Linux上使用Python 2.7.9,并且在Google-Cloud Server SDK上遵循Google的example。我的目标是将图像上传到Google Cloud Platform,但是下面出现错误。

File "/home/pi/test.py", line 15, in <module>
  zebraBlob.upload_from_filename(filename='/home/pi/Pictures/testimg.jpg')
AttributeError: 'NoneType' object has no attribute
  'upload_from_filename'

代码:

from firebase import firebase
from google.cloud import storage
import os

firebase = firebase.FirebaseApplication('https://motion-detector-234.firebaseio.com', None)
storage_client = storage.Client.from_service_account_json('Motion Detector-8gf5445fgeeea.json')

bucket = storage_client.get_bucket('motion-detector-210fds717.appspot.com')
print ('bucket', bucket) // output: bucket, motion-detector-210717.appspot.com

zebraBlob = bucket.get_blob('testimg.jpg')
print(zebraBlob) // output: None

zebraBlob.upload_from_filename(filename='/home/pi/Pictures/testimg.jpg')

如何解决?

2 个答案:

答案 0 :(得分:2)

要使其正常工作,您只需编写zebraBlob = bucket.blob('testimg.jpg')而不是zebraBlob = bucket.get_blob('testimg.jpg')

答案 1 :(得分:0)

遇到相同的问题,只能通过首先从Google Cloud Console创建另一个图像来解决该问题(导航到您的存储桶,然后单击“ 上传文件< / em>”)。

完成后,它似乎可以正常工作,并上传新图像,替换另一个图像。

ps,您可以在控制台上重命名映像,例如this

如果我想出了不先进行操作就直接创建新文件的方式,那么我将更新此信息,如果其他人已经知道,请随时收件箱将其更新:)