Spring Cloud AWS - S3

В тази кратка статия ще разгледаме поддръжката на AWS, предоставена в платформата Spring Cloud - фокусирайки се върху S3.

Съдържание: Тази статия е част от поредица: • Spring Cloud AWS - S3 (текуща статия) • Spring Cloud AWS - EC2

• Spring Cloud AWS - RDS

• Spring Cloud AWS - Поддръжка на съобщения

1. Обикновено изтегляне на S3

Нека започнем с лесен достъп до файлове, съхранени на S3:

@Autowired ResourceLoader resourceLoader; public void downloadS3Object(String s3Url) throws IOException { Resource resource = resourceLoader.getResource(s3Url); File downloadedS3Object = new File(resource.getFilename()); try (InputStream inputStream = resource.getInputStream()) { Files.copy(inputStream, downloadedS3Object.toPath(), StandardCopyOption.REPLACE_EXISTING); } }

2. Просто качване на S3

Също така можем да качваме файлове:

public void uploadFileToS3(File file, String s3Url) throws IOException { WritableResource resource = (WritableResource) resourceLoader .getResource(s3Url); try (OutputStream outputStream = resource.getOutputStream()) { Files.copy(file.toPath(), outputStream); } }

3. Структура на URL адреса S3

В s3Url е представена с помощта на формата:

s3:///

Например, ако файл bar.zip е в папката foo на кофата my-s3- bucket, тогава URL адресът ще бъде:

s3://my-s3-bucket/foo/bar.zip

И също така можем да изтегляме няколко обекта наведнъж, като използваме ResourcePatternResolver и съответствието на модела в стил Ant:

private ResourcePatternResolver resourcePatternResolver; @Autowired public void setupResolver(ApplicationContext applicationContext, AmazonS3 amazonS3) { this.resourcePatternResolver = new PathMatchingSimpleStorageResourcePatternResolver(amazonS3, applicationContext); } public void downloadMultipleS3Objects(String s3Url) throws IOException { Resource[] allFileMatchingPatten = this.resourcePatternResolver .getResources(s3Url); // ... } }

URL адресите могат да съдържат заместващи символи вместо точни имена.

Например URL адресът s3: //my-s3-bucket/**/a*.txt рекурсивно ще търси всички текстови файлове, чието име започва с ' a ' във всяка папка на кофата my-s3-bucket .

Имайте предвид, че компонентите ResourceLoader и ResourcePatternResolver се създават при стартиране на приложението, като се използва функцията за автоматично конфигуриране на Spring Boot.

4. Заключение

И приключихме - това е бързо и актуално въведение в достъпа до S3 с Spring Cloud AWS.

В следващата статия от поредицата ще проучим поддръжката на EC2 на рамката.

Както обикновено, примерите са достъпни в GitHub.

Напред » Spring Cloud AWS - EC2