Tidak, Anda tidak bisa mendapatkan URL dalam satu tindakan tetapi dua :)
Pertama-tama, Anda mungkin harus membuat file menjadi publik sebelum mengunggah karena tidak masuk akal untuk mendapatkan URL yang tidak dapat diakses oleh siapa pun. Anda dapat melakukannya dengan menyetel ACL seperti yang disarankan Michael Astreiko. Anda bisa mendapatkan URL sumber daya baik dengan menelepon getResourceUrlatau getUrl.
AmazonS3Client s3Client = (AmazonS3Client)AmazonS3ClientBuilder.defaultClient();
s3Client.putObject(new PutObjectRequest("your-bucket", "some-path/some-key.jpg", new File("somePath/someKey.jpg")).withCannedAcl(CannedAccessControlList.PublicRead))
s3Client.getResourceUrl("your-bucket", "some-path/some-key.jpg");
Note1:
Perbedaan antara getResourceUrldan getUrladalah bahwa getResourceUrl akan mengembalikan null saat pengecualian terjadi.
Note2:
getUrl metode tidak ditentukan di antarmuka AmazonS3. Anda harus mentransmisikan objek ke AmazonS3Client jika Anda menggunakan pembuat standar.