Общедоступная ссылка на изображение облачного хранилища Google на img src

#javascript #image #google-cloud-storage #src

#javascript #изображение #google-облачное хранилище #Src

Вопрос:

Привет, я изучил связанные вопросы, но не смог найти ответ. Я хотел бы размещать общедоступные ссылки из облачного хранилища Google на своем веб-сайте, но они доступны только как ссылки для скачивания. Я не могу разместить их как img src для их загрузки. Я не могу загрузить изображение асинхронно с моей веб-страницы js из-за CORS. Есть ли обходной путь? Мне было интересно, могу ли я асинхронно определить их как ссылки для скачивания изначально и заставить onclick загрузить их, а затем использовать file Reader, чтобы заставить blob использовать в качестве img src.

ОБНОВЛЕНИЕ: я выяснил, что возникла проблема с Chromium. Я использовал Firefox с CORS_Everywhere, и запросы работают. Как только мой веб-сайт заработает, возникнет ли у меня такая же проблема с изображениями? ИЛИ CORS просто не принимает localhost? ИЛИ это зависит от браузера?

Спасибо, ловец времени

Ответ №1:

Я не совсем уверен, что вы пытаетесь сделать. Похоже, вы хотели бы отображать изображения в <img> теге, источник которого находится в GCS. Для этого вам не нужна какая-либо политика CORS или хитрость Javascript, поэтому я могу неправильно понять ваш вопрос.

Чтобы включить изображения GCS на веб-сайт, убедитесь, что изображение общедоступно, затем просто добавьте тег изображения, подобный этому: <img src="https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME" /> .

Редактировать с ответом из комментариев:

Если вы загружаете объект без указания типа содержимого, GCS по умолчанию использует общий «application / octet-stream». Веб-браузеры обычно по умолчанию сохраняют application/octet-stream ответы. Убедитесь, что изображения в формате JPEG имеют тип содержимого «image / jpeg», если вы хотите отправлять их через Интернет.

Еще одно предостережение:

Существует другой путь, использующий https://storage.cloud.google.com/ path, но он предназначен для аутентификации пользователей с помощью файлов cookie Google в их собственной учетной записи, и вы, как правило, не хотите полагаться на это при предоставлении общедоступного контента. Используйте https://storage.googleapis.com .

Комментарии:

1. Привет, Брэндон, хотел бы я, чтобы это было так просто. все ссылки, созданные из моей учетной записи облачного хранилища, являются ссылками для загрузки мультимедиа, а не ссылками на img src, которые можно было бы ожидать. Вот пример ссылки: storage.googleapis.com/santex-1101.appspot.com /…

2. Google cloud предоставляет ссылку https://storage.cloud.google.com/BUCKET/path/to/image.jpg , но правильная ссылка https://storage.googleapis.com/BUCKET/path/to/image.jpg … убил 4 часа времени… Спасибо, чувак, твой ответ дал мне идею

3. Живая заставка @OlegReym

4. @OlegReym, ты спас мои 4 часа. Спасибо. Я полагаю, что Брэндон должен добавить это как часть своего ответа.

5. @OlegReym отлично работал для меня. огромное спасибо