我在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')
如何解决?
答案 0 :(得分:2)
要使其正常工作,您只需编写zebraBlob = bucket.blob('testimg.jpg')
而不是zebraBlob = bucket.get_blob('testimg.jpg')
答案 1 :(得分:0)
遇到相同的问题,只能通过首先从Google Cloud Console创建另一个图像来解决该问题(导航到您的存储桶,然后单击“ 上传文件< / em>”)。
完成后,它似乎可以正常工作,并上传新图像,替换另一个图像。
ps,您可以在控制台上重命名映像,例如this
如果我想出了不先进行操作就直接创建新文件的方式,那么我将更新此信息,如果其他人已经知道,请随时收件箱将其更新:)