I called s3 api by copyObject. But, i got the 403 error for access denied.
I have configured it as follows.
IAM + CORS settings
IAM is S3FullAccess.
CORS is allowed.
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"http://localhost:3002"
],
"ExposeHeaders": []
}
]
I don't know what I am missing.
code:
import AWS from 'aws-sdk';
AWS.config.update({
accessKeyId: process.env.NEXT_PUBLIC_AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.NEXT_PUBLIC_AWS_SECRET_ACCESS_KEY,
})
bucket = new AWS.S3({
params: { Bucket: 'bucket' },
region: 'ap-northeast-2',
});
const params = {
Bucket: 'bucket',
CopySource: `advertisement_${i}.png`,
Key: `advertisement_${i}_old.png`,
};
await this.bucket.copyObject(params)
.send((err => {
if (err) {
alert(err);
} else {
console.log(`advertisement_${i} is copied`);
}
}));