Pyrebase.storage() - Недопустимая пара HTTP-метод/URL

У меня есть скрипт, в котором я пытался загрузить изображение в хранилище firebse с помощью pyrebase, для чего я использую функцию storage, но она не работает и выдает следующую ошибку.

Traceback (most recent call last):
  File "C:\Users\Angel\AppData\Local\Programs\Python\Python36\lib\site-packages\pyrebase\pyrebase.py", line 444, in raise_detailed_error
    request_object.raise_for_status()
  File "C:\Users\Angel\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://firebasestorage.googleapis.com/v0/b/gs://test-bc3ec.appspot.com//o?name=example.PNG

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Angel\Documents\respaldo\pyrebase_1..py", line 24, in <module>
    storage.child("/example.PNG").put("Captura.PNG")
  File "C:\Users\Angel\AppData\Local\Programs\Python\Python36\lib\site-packages\pyrebase\pyrebase.py", line 406, in put
    raise_detailed_error(request_object)
  File "C:\Users\Angel\AppData\Local\Programs\Python\Python36\lib\site-packages\pyrebase\pyrebase.py", line 448, in raise_detailed_error
    raise HTTPError(e, request_object.text)
requests.exceptions.HTTPError: [Errno 400 Client Error: Bad Request for url: https://firebasestorage.googleapis.com/v0/b/gs://test-bc3ec.appspot.com//o?name=example.PNG] {
  "error": {
    "code": 400,
    "message": "Invalid HTTP method/URL pair."
  }
}
[Finished in 2.4s with exit code 1]
[shell_cmd: python -u "C:\Users\Angel\Documents\respaldo\pyrebase_1..py"]
[dir: C:\Users\Angel\Documents\respaldo]
[path: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Angel\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\Angel\AppData\Local\Programs\Python\Python36\;C:\Users\Angel\Videos\flutter\bin;C:\Users\Angel\AppData\Local\Programs\Microsoft VS Code\bin]

Это код:

 import pyrebase

config = {
    "apiKey":"AIzaSyDphkVRuW39CyUbLmT5OkeZ2YmAUhwEUm4",
    "authDomain":"test-bc3ec",
    "databaseURL":"https://test-bc3ec.firebaseio.com/",
    "storageBucket":"gs://test-bc3ec.appspot.com/"
}
firebase = pyrebase.initialize_app(config)

db = firebase.database()

uder = db.child("Nuevo").get()
print(uder.val())


#def stream_handler(message):
#   print(message['path'])
#   print(message['data'])


#myStream = db.child('Nuevo').stream(stream_handler)
storage = firebase.storage()
myfile = open("Captura.PNG","rb")
bytesm  = myfile.read()

fbupload = storage.child("/test/").put(bytesm)

Также попробуйте с firebase_admin

import firebase_admin
from firebase_admin import credentials,db,storage

cred = credentials.Certificate("nuevo.json")
firebase_admin.initialize_app(cred,{
    'databaseURL':'https://test-bc3ec.firebaseio.com/'
})

s = firebase_admin.storage()
s.child("imagenes/Captura.PNG").put("Captura.PNG")

ошибка в этом коде:

Traceback (most recent call last):
  File "C:\Users\Angel\Documents\respaldo\firebase_ad.py", line 13, in <module>
    s = firebase_admin.storage()
TypeError: 'module' object is not callable
[Finished in 0.8s]

но тоже не работает

Pyrebase.storage() - Недопустимая пара HTTP-метод/URL

пирбаза Второй

storage = firebase.storage()
myfile = open("Captura.PNG","rb")
bytesm  = myfile.read()

fbupload = storage.child("/test/Captura.png").put(bytesm)

Соответствующий Пустой файл, хранящийся в Firebase

stovfl 09.03.2019 10:10

@stovfl, я уже пробовал это решение, но оно не работает

Angel Judath Alvarez 09.03.2019 13:54

Есть проблемы с гитхабом/79, проверьте свою версию pyrebase и прочитайте последние 4 комментария.

stovfl 09.03.2019 20:54

@stovfl, тоже попробуй убрать текст gs// тоже поменяй поставил по почте и не получилось

Angel Judath Alvarez 09.03.2019 22:02
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
4
2 606
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Question: Invalid HTTP method/URL pair

  1. config["storageBucket"]

    Используя свой config:

    "storageBucket":"gs://test-bc3ec.appspot.com/"  
    

    Output:
    I get Invalid HTTP method/URL pair.

    "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }

    Изменился на

    Примечание. Удалены начальные gs:// и конечные /..

    "storageBucket":"test-bc3ec.appspot.com"  
    

    Output:
    I get Permissin denied instead of Invalid HTTP method/URL pair,
    as i can't auth against test-bc3ec

    "error": { "code": 403, "message": "Permission denied. Could not perform this operation" }

  2. Pyrebase # поставить

    put
    The put method takes the path to the local file and an optional user token.

    storage = firebase.storage()
    
    # as admin
    storage.child("images/example.jpg").put("example2.jpg")
    
    # as user
    storage.child("images/example.jpg").put("example2.jpg", user['idToken'])
    
  3. Ваш storage

    Примечание: "test" без интерлиньяжа /.

    storage = firebase.storage()
    
    local_file_path = "Captura.PNG"
    storage_file_path = "test/Captura.PNG"
    
    fbupload = storage.child(storage_file_path).put(local_file_path)
    

Пожалуйста, сообщите о шаге 3, так как я не могу это проверить.

Протестировано с Python: 3.4.2 - Pyrebase: 3.0.27

Другие вопросы по теме