Criaremos um S3Service e colocaremos tudo que está la no repositório do git.
❗❗️ Esse código irá mudar quando formos criar o endpoint. ⬇️
@ServicepublicclassS3Service {privatestaticLogger LOG =LoggerFactory.getLogger(S3Service.class);//componente do SDK Amazon @AutowiredprivateAmazonS3 s3client;//pegando nome do do bucket do properties @Value("${s3.bucket}")privateString bucketName;//fará um upload de arquivo dada uma localização do nosso computadorpublicvoiduploadFile(String localFilePath) {try {File file =newFile(localFilePath);LOG.info("Upload start");//isso faz o upload para o S3s3client.putObject(newPutObjectRequest(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).