gpt4 book ai didi

javascript - 通过 javascript AWS sdk 将图像上传到 S3 结果为 '[object object]' 字符串

转载 作者:行者123 更新时间:2023-11-30 19:42:10 25 4
gpt4 key购买 nike

关注this tutorial ,我正在尝试使用以下代码将图像从我的 ionic 应用程序上传到 amazon s3 存储桶:

uploadFile(filePath) {
console.log('uploading: ', filePath);
this.getFile(filePath).subscribe((file) => {
console.log('file is', file);

this.s3.upload({
Key: file.name,
Bucket: this.bucketName,
Body: file,
ACL: 'public-read'
}, (err, data) => {
console.log('error', err);
console.log('data', data);
})
});
}

getFile(filePath):Observable<any> {
return Observable.create((obs) => {
(<any>window).resolveLocalFileSystemURL(filePath,(fileEntry) => {
fileEntry.file((fileObject) => {
obs.next(fileObject);
})
})
});
}

这可以很好地连接到 aws,但它上传的文件只是一个包含 [object object] 的文本文件,而不是 jpeg 图像数据。对于上下文,filePath 参数被传递给通过 Ionic 3 @ionic-native/camera 库生成的图像的文件路径,我正在运行代码android 模拟器,如果这有什么不同的话。

我很确定我在上传时将错误类型的对象传递给 Body 属性,但我不知道应该是什么。 AWS 文档说它应该接受 Blob 的类型,但是我的 getFile 方法返回一个 File,这显然是 Blob 的一个实例,所以我认为它应该可以正常工作?

最佳答案

看起来 GetFile 方法返回一个 File 对象而不是一个 blob。所以什么时候,你写:

Body: file,

您实际上传递的是 JS 对象,而不是 blob。this is an object 的证据是 file.name 确实返回了一个名称。

我建议您查看 fileEntry.file 的文档,以检查如何从返回的 File 对象访问字节数组。

来自 Cordova documentation :

file:创建包含文件属性的 File 对象。

也许 FileReader 会帮助您实际读取文件。 https://cordova.apache.org/docs/en/1.8.1/cordova/file/filereader/filereader.html

关于javascript - 通过 javascript AWS sdk 将图像上传到 S3 结果为 '[object object]' 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55282892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com