Следуя этому уроку , я пытаюсь загрузить изображение из моего ионного приложения в корзину 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 fine, но файл, который он загружает, - это просто текстовый файл с [object object]
вместо данных изображения jpeg.для контекста аргумент filePath
передается путь к файлу к изображению, которое генерируется через библиотеку Ionic 3 @ionic-native/camera
, и я запускаю код через эмулятор Android, если это имеет какое-либо значение.
Я почти уверен, что передаю неправильный тип объекта в свойство Body
, когда выполняю загрузку, но не могу понять, каким он должен быть.Документация AWS говорит, что он должен принимать тип Blob
, но мой метод getFile
возвращает File
, который, по-видимому, является экземпляром Blob
, поэтому я решил, что он должен работать нормально?