Hướng dẫn fix AWSS3Provider - error uploading region is missing trong Amplify
9th Apr 2021Tôi đang sử dụng công cụ chọn ảnh gốc phản ứng để lấy đường dẫn tệp của video trên điện thoại trình mô phỏng iOS cho ứng dụng gốc phản ứng của mình. Làm cách nào để sử dụng cái này để tải lên S3 bằng 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);});
}
}
Cách giải quyết
Storage.configure({
AWSS3: {
bucket: '',//Your bucket ARN;
region: ''//Specify the region your bucket was created in;
}
});
Và
import Amplify from 'aws-amplify';
Amplify.configure({
Auth: {
identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',
region: 'XX-XXXX-X', // REQUIRED - Amazon Cognito Region
userPoolId: 'XX-XXXX-X_abcd1234', //OPTIONAL - Amazon Cognito User Pool ID
userPoolWebClientId: 'XX-XXXX-X_abcd1234',
},
Storage: {
AWSS3: {
bucket: '', //REQUIRED - Amazon S3 bucket
region: 'XX-XXXX-X', //OPTIONAL - Amazon service region
}
}
});
Add new comment