firebase 下载图像 url 编码错误

firebase downloading an image url encode error

我在 firebase 中存储了一些图像,firebase 给了我一个 url 来下载像这样的图像:

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)

在另一台服务器上休息 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 进行了编码,并破坏了 url 并且服务器尝试从此 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

这个link给出以下错误

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

所以在 python 中我尝试解码第一个 url

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

(这个link给出了下面的错误)

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

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

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

谢谢。

作为解决方法,我使用 google api goo.gl 缩短了 url 这适用于 mercadolibre、facebook 或任何其他需要 url 才能上传图片的 api。

你好。