Я работал над этим, написав серверную функцию для рекурсивного следования пути перенаправления и получения окончательного URL-адреса фотографии.Пример в эликсире:
def follow(url) when is_binary(url) do
case HTTPoison.get(url) do
{:ok, %HTTPoison.Response{status_code: status_code, headers: headers}} when status_code > 300 and status_code < 400 ->
case get_location_header(headers) do
[url] when is_binary(url) ->
follow(url)
_ ->
{:error, :no_location_header}
end
{:ok, %HTTPoison.Response{status_code: 200}} ->
{:ok, url}
reason ->
{:error, reason}
end
end
defp get_location_header(headers) do
for {key, value} <- headers, String.downcase(key) == "location" do
value
end
end
, так что теперь я могу взять длинный https://maps.googleapis.com/maps/api/place/js/PhotoService.GetPhoto?1sCm...
URL-адрес и запустить его через follow (), который возвращает URL-адрес googleusercontent для самого изображения.
i, затем передайтеЭто URL для файлового стека, чтобы копировать и хранить и обслуживать через CDN ...
немного сумасшедшего обходного пути, но это, наконец, исправило эту проблему для нас.