У меня есть проект, в котором нужно хранить фотографии профиля в облачном хранилище Google. Я получил подписанный URL-адрес из нашего API и загружаю изображение с помощью:
const xhr = new XMLHttpRequest();
xhr.open("PUT", signedURL, true);
xhr.onload = () => {
const status = xhr.status;
if (status === 200) {
console.log("ok");
} else {
console.log("Something went wrong!", status);
}
};
xhr.onerror = () => {
console.log("......Something went wrong!")
};
xhr.setRequestHeader('Content-Type', "application/octet-stream");
const fileBuffer = base64.toByteArray(data)
xhr.send(fileBuffer);
Для рендеринга изображения в React Native я использую таким образом:
<Image source={{uri: 'https://storage.googleapis.com/mybucketname/myfile.jpg'}} />
,
Я изменил сегмент на Publi c Access (добавить элемент allUsers
в средство просмотра объектов хранилища).
Результат: на панели управления Я нажимаю Public to internet
и Link URL
, они возвращают два разных изображения, причем Public to internet
всегда является первым изображением, а Link URL
всегда является последним загруженным. Есть идеи, как это исправить или как правильно показывать изображение?
Кроме того, мне также нужно загружать и просматривать видео и документы, возможно ли их рендеринг на react native, даже если в ведре есть быть частным?