Open lokomass opened 3 years ago
Promise.all(
docsImg.map(async item => {
const res = await RNS3.put(item, options);
console.log('\n\n====>\n', res, '\n<=====\n\n');
if (res.body.postResponse.location !== '') {
const url = `${res.body.postResponse.location}|`;
const aux = `${url}${urls === '' ? '' : '|'}${urls}`;
setUrls(aux);
}
}),
).then(() => {
console.log('\n\n====>\n', urls, '\n<=====\n\n');
});
Hi, I did it that way and it flowed well
Below worked for me!!!
const uploadButtonClick = () => {
let promises = [];
images.map((image, i) => {
promises.push(uploadImageToS3(image));
});
}
Here I created an empty array of promises to store each response of the upload call. Next, I am mapping images array to upload calls with a single image and promises.push is saving that response in promises array.
RNS3.put Next, I defined my uploadImageToS3 a method like its mentioned in the example of react-native-aws3.
const uploadImageToS3 = async image => {
const options = {
keyPrefix: "uploads/",
bucket: "your-bucket",
region: "us-east-1",
accessKey: "your-access-key",
secretKey: "your-secret-key",
successActionStatus: 201
}
const file = {
uri: `${image.path}`,
name: image.path.substring(image.path.lastIndexOf('/') + 1), //extracting filename from image path
type: image.mime,
};
return new Promise((resolve, reject) => {
RNS3.put(file, options)
.then(res => {
if (res.status === 201) {
const {postResponse} = res.body;
resolve({
src: postResponse.location,
});
} else {
console.log('error uploading to s3', res);
}
})
.catch(err => {
console.log('error uploading to s3', err);
reject(err);
});
});
};
This method is returning the promise of URL/location of the image as an object having value src. Now I combined all promises with Promise.all function.
Promise.all(promises).then(uploadedImgs => {
console.log('Yayy, all images are uploaded successfully', uploadedImgs)
});
uploadedImgs array will look like this
[
{
src: 'https://<image-url>'
},
{
src: 'https://<image-url>'
},
]
Hi, I want to upload multiple files. My problem is, my function print "succedd up" and not reach "console.log('ok')" Here is my code Thanks for reply