使用放大存储错误地将图像上载到s3(React Native-Expo-amplify) 我正在尝试使用放大存储API将图像上载到s3 我使用EXPO imagePicker将手机中的图像上传到React Native,图像显示正确 然后我用amplify Storage.put将它上传到s3,它到达s3中的正确文件夹,使用我提供的正确文件名和我提供的公共访问权限(图像和存储桶本身) 但是如果我尝试在s3中打开照片uri,它不会显示。当我检查浏览器时,它在控制台上显示此错误:
使用放大存储错误地将图像上载到s3(React Native-Expo-amplify) 我正在尝试使用放大存储API将图像上载到s3 我使用EXPO imagePicker将手机中的图像上传到React Native,图像显示正确 然后我用amplify Storage.put将它上传到s3,它到达s3中的正确文件夹,使用我提供的正确文件名和我提供的公共访问权限(图像和存储桶本身) 但是如果我尝试在s3中打开照片uri,它不会显示。当我检查浏览器时,它在控制台上显示此错误:,image,react-native,amazon-s3,expo,aws-amplify,Image,React Native,Amazon S3,Expo,Aws Amplify,如果在浏览器中粘贴从Storage.get获取的uri,则会出现以下错误: 我的代码如下(本教程由我自己编写): pickerResult具有以下形式: 我尝试在s3中公开这个桶和照片,但错误依然存在 有什么想法吗 提前谢谢 也许这不是aws amplify的问题,而是fetch和blob的问题。你能试试这个吗 function urlToBlob(url) { return new Promise((resolve, reject) => { var xh
- 如果在浏览器中粘贴从Storage.get获取的uri,则会出现以下错误:
- 我的代码如下(本教程由我自己编写):
- pickerResult具有以下形式:
- 我尝试在s3中公开这个桶和照片,但错误依然存在李>
提前谢谢 也许这不是aws amplify的问题,而是
fetch
和blob
的问题。你能试试这个吗
function urlToBlob(url) {
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
xhr.onerror = reject;
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
resolve(xhr.response);
}
};
xhr.open('GET', url);
xhr.responseType = 'blob'; // convert type
xhr.send();
})
}
而不是
const imageData = await global.fetch(pickerResult.uri)
const blobData = await imageData.blob()
试一试
请查看完整的讨论您在amazon s3控制台中看到该文件了吗?@Cherniv是的,我看到了。此外,我还将图像直接从我的计算机(正确显示的图像)上传到同一个s3文件夹,它们与存储上传的冲突图像似乎没有区别。Put当我看到错误时,可能是awsserver访问问题。检查套接字或访问权限。@我公开了所有内容(bucket、image),并且iam用户拥有完全权限,因此我认为访问权限不是问题所在。我们使用了另一种解决方案,但在某些手机中上载时仍有问题。只是把它改成了你的解决方案,并且成功了!谢谢谢谢你的提示!
function urlToBlob(url) {
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
xhr.onerror = reject;
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
resolve(xhr.response);
}
};
xhr.open('GET', url);
xhr.responseType = 'blob'; // convert type
xhr.send();
})
}
const imageData = await global.fetch(pickerResult.uri)
const blobData = await imageData.blob()
const blobData = await urlToBlob(pickerResult.uri)