#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 отлично работал для меня. огромное спасибо