Criaremos um S3Service e colocaremos tudo que está la no repositório do git.
❗❗️ Esse código irá mudar quando formos criar o endpoint. ⬇️
@Service
public class S3Service {
private static Logger LOG = LoggerFactory.getLogger(S3Service.class);
//componente do SDK Amazon
@Autowired
private AmazonS3 s3client;
//pegando nome do do bucket do properties
@Value("${s3.bucket}")
private String bucketName;
//fará um upload de arquivo dada uma localização do nosso computador
public void uploadFile(String localFilePath) {
try {
File file = new File(localFilePath);
LOG.info("Upload start");
//isso faz o upload para o S3
s3client.putObject(new PutObjectRequest(bucketName, "test.jpg", file));
LOG.info("Upload end");
}
catch (AmazonServiceException e) {
LOG.info("AmazonServiceException: " + e.getErrorMessage());
LOG.info("Status code: " + e.getErrorCode());
}
catch (AmazonClientException e) {
LOG.info("AmazonClientException: " + e.getMessage());
}
}
}
Para isso tudo funcionar, precisamos definir um Bean para dizer como o AmazonS3 vai ser instanciado.
Ele vai ser instanciado usando as credenciais do properties (access_key e secret_access_key e region).