AttributeError 'NoneType' object has no attribute 'upload_from_filename'

余生颓废 提交于 2021-02-19 06:07:44

问题


I'm using Python 2.7.9 on Linux and I am following Google's example on Google-Cloud Server SDK. My goal is to upload an image to Google Cloud Platform, but I'm getting the error below.

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'

Code:

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')

How can it be resolved?


回答1:


To make it work you should simply write zebraBlob = bucket.blob('testimg.jpg') instead of zebraBlob = bucket.get_blob('testimg.jpg')




回答2:


Came across the same issue and only solved it by creating another image from the Google Cloud Console first (navigate to your bucket and click "Upload file").

Once it has been made it seems to work fine and uploads the new image, replacing the other one.

ps you can rename the image on console like this

If I figure out how to just create a new file without doing this first I will update this post, if anyone else knows already please feel free to inbox me to update it :)



来源:https://stackoverflow.com/questions/51439904/attributeerror-nonetype-object-has-no-attribute-upload-from-filename

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!