Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

java_sdkでec2からs3へのファイルのやりとりができない(403エラー)場合は署名タイプバージョンを変えてみるとうまくいくかもしれない

More than 5 years have passed since last update.

ローカル環境ではs3へのファイルのやり取りができていたのに、ec2にデプロイして実行するとs3とのやり取りで403エラーとなる。credentialの問題でもないならば署名タイプを疑ってみてもいいかも。

とりあえず、明示的にversion4を指定してあげればおkだと思います。

public void setup() {
    s3 = new AmazonS3Client();
    System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true"); // これ!!
    Region region = Region.getRegion(Regions.AP_NORTHEAST_1);
    s3.setRegion(region);
    s3.setEndpoint(endpoint);
}

参考

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html

munaita_
フリーランスのデータエンジニアです。 データ基盤構築や、ビッグデータを扱うシステム構築が得意です。 新卒サイバーエージェントからフリーランス。 広告/小売/教育など幅広いドメインのデータビジネスを経験しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away