Я использую react-native-image-picker
, чтобы получить путь к файлу видео на моем телефоне-симуляторе iOS для моего собственного приложения React. Как использовать это для загрузки на S3 с помощью Amplify?
import ImagePicker from 'react-native-image-picker';
import RNFetchBlob from 'react-native-fetch-blob';
import {Storage} from 'aws-amplify';
class App extends Component {
constructor(props) {
super(props)
}
//This function is called on a Button click
pickVideo = async () => {
const options = {
mediaType: 'video'
};
ImagePicker.launchImageLibrary(options, (response) => {
if(response.didCancel){
console.log('User cancelled image picker');
}
else if (response.error){
console.log('ImagePicker error: ', response.error);
}
else{
this.setState({
vidFileName: response.fileName,
});
console.log(response.uri);
this.putFileInS3(response.path, repsonse.filename);
}
});
}
readFile = (somefilePath) => {
return RNFetchBlob.fs.readFile(somefilePath, 'base64').then(data => new
Buffer(data, 'base64'));
}
putFileInS3 = (filePath, fileName) => {
this.readFile(filePath).then(buffer => {
Storage.put(fileName, buffer, { contentType: 'video/mp4' })
.then(() => {console.log('successfully saved to bucket');})
.catch(e => { console.log(e);});
}
}
Хотя я получаю ответы от средства выбора изображений, при попытке загрузки он говорит: AWSS3Provider: Отсутствует требуемый ключ Bucket в параметрах, даже если пользователь вошел в систему как пользователь IAM, используя withAuthenticator.