Spring Cloud AWS - S3

Spring Cloud AWS - S3

В этой быстрой статье мы собираемся изучить поддержку AWS, предоставляемую платформой Spring Cloud, уделяя особое внимание S3.

1. Simple 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:

@Autowired
ResourcePatternResolver resourcePatternResolver;

public void downloadMultipleS3Objects(String s3Url) throws IOException {
    Resource[] allFileMatchingPatten = this.resourcePatternResolver
      .getResources(s3Url);
        // ...
    }
}

URL-адреса могут содержать подстановочные знаки вместо точных имен.

Например,s3://my-s3-bucket/*/a.txt URL будет рекурсивно искать все текстовые файлы, имена которых начинаются с «a», в любой папкеmy-s3-bucket.

Обратите внимание, что bean-компонентыResourceLoader иResourcePatternResolver создаются при запуске приложения с использованием функции автоматической настройки Spring Boot.

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

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

Вnext article of the series мы исследуем поддержку EC2 фреймворка.

Как обычно доступны примерыover on GitHub.