# Service do S3

Criaremos um S3Service e colocaremos tudo que está la no repositório do git.

❗❗️ Esse código irá mudar quando formos criar o endpoint. ⬇️

```java
@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).

Para isso, iremos criar um S3Config:\
\\
