【发布时间】:2019-03-21 23:02:05
【问题描述】:
通过关注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 的一个实例,所以我认为它应该可以正常工作?
【问题讨论】:
标签: javascript amazon-web-services amazon-s3 ionic3 aws-sdk