firebase下载图片网址编码错误

时间:2017-11-14 15:20:56

标签: python rest firebase url url-encoding

我在firebase中存储了一些图片,firebase给了我一个下载图片的网址:

https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures%2F1000%2Falicate%20cortante%20electronica.jpg?alt=media&token=f2d54a3b-0526-4b9a-99ff-4c38c468757c

下载图片的权限已全部打开

我想通过MercadoLibre(api.mercadolibre.com)的另一台服务器上的rest api上传图片

上传我必须发送图片的图片

{"source":"https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures%2F1000%2Falicate%20cortante%20electronica.jpg?alt=media&token=f2d54a3b-0526-4b9a-99ff-4c38c468757c"}

通过POST

问题是来自mercadolibre的服务器对url进行编码,并破坏了网址,服务器尝试从此网址下载图像

https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures%252F1000%252Falicate%2520cortante%2520electronica.jpg%3Falt%3Dmedia%26token%3Df2d54a3b-0526-4b9a-99ff-4c38c468757c

注意%25

此链接显示以下错误

{
  "error": {
    "code": 404,
    "message": "Not Found.  Could not get object"
  }
}

所以在python中我试图解码第一个网址

https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures/1000/alicate cortante electronica.jpg?alt=media&token=f2d54a3b-0526-4b9a-99ff-4c38c468757c

(此链接出现以下错误)

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

认为当mercadolibre服务器对url进行编码时我会得到原始文件,但问题是只有“/ o /”之后的“/”应该转换为%2F

我无法控制url编码(这在mercadolibre服务器中是自动的),我怎样才能发送一个url,在编码后我得到一个有效格式的原始网址?

感谢。

1 个答案:

答案 0 :(得分:0)

作为一种解决方法,我使用google api goo.gl缩短了网址 这适用于mercadolibre,脸书或任何其他需要网址上传图片的API。

问候。