Статьи

Загрузить и загрузить файлы на S3, используя Maven

На протяжении многих лет я видел, как многие команды использовали maven по-разному. Maven может использоваться для многих задач ci / cd вместо использования дополнительного конвейерного кода или для подготовки среды разработки перед запуском некоторых тестов.
Как правило, это удобный инструмент, широко используемый среди Java-команд и будет продолжаться, так как вокруг него огромная экосистема.

Плагин CloudStorage Maven поможет вам использовать различные облачные корзины в качестве частного хранилища maven. Недавно CloudStorageMaven для s3 получил огромное обновление, и вы можете использовать его для загрузки или выгрузки файлов из s3, используя его в качестве плагина.

Плагин предполагает, что ваша среда настроена правильно для доступа к необходимым ресурсам s3.
Это может быть достигнуто индивидуально через конфигурацию aws

1
aws configure

Другие способы — через переменные среды или использование соответствующей роли iam.

Предположим, вы хотите загрузить некоторые определенные файлы из пути в s3.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<build>
        <plugins>
            <plugin>
                <groupId>com.gkatzioura.maven.cloud</groupId>
                <artifactId>s3-storage-wagon</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <id>download-one</id>
                        <phase>package</phase>
                        <goals>
                            <goal>s3-download</goal>
                        </goals>
                        <configuration>
                            <bucket>your-bucket</bucket>
                            <downloadPath>/local/download/path</downloadPath>
                            <keys>1.txt,2.txt,directory/3.txt</keys>
                        </configuration>
                    </execution>
                <executions>
            <plugin>
        <plugins>
</build>

Файлы 1.txt, 2.txt, directory / 3.txt после завершения выполнения должны находиться в указанном локальном каталоге.
(/ Местные / загрузки / путь).
Помните, что обнаружение файла на s3 выполняется с префиксом, поэтому, если у вас есть файл 1.txt и 1.txt.jpg, оба файла должны быть загружены.

Вы также можете загрузить только один файл в один файл, который вы указали локально, при условии, что это один к одному.

01
02
03
04
05
06
07
08
09
10
11
12
<execution>
                        <id>download-prefix</id>
                        <phase>package</phase>
                        <goals>
                            <goal>s3-download</goal>
                        </goals>
                        <configuration>
                            <bucket>your-bucket</bucket>
                            <downloadPath>/path/to/local/your-file.txt</downloadPath>
                            <keys>a-key-to-download.txt</keys>
                        </configuration>
                    </execution>

Очевидно, что файлы с префиксом, которые содержат каталоги (они являются поддельными на s3), будут загружены в каталог, указанный в форме каталогов и подкаталогов.

01
02
03
04
05
06
07
08
09
10
11
12
<execution>
                        <id>download-prefix</id>
                        <phase>package</phase>
                        <goals>
                            <goal>s3-download</goal>
                        </goals>
                        <configuration>
                            <bucket>your-bucket</bucket>
                            <downloadPath>/path/to/local/</downloadPath>
                            <keys>s3-prefix</keys>
                        </configuration>
                    </execution>

Следующая часть о загрузке файлов на s3.

Загрузка одного файла

01
02
03
04
05
06
07
08
09
10
11
12
<execution>
                        <id>upload-one</id>
                        <phase>package</phase>
                        <goals>
                            <goal>s3-upload</goal>
                        </goals>
                        <configuration>
                            <bucket>your-bucket</bucket>
                            <path>/path/to/local/your-file.txt</path>
                            <key>key-to-download.txt</key>
                        </configuration>
                    </execution>

Загрузить каталог

01
02
03
04
05
06
07
08
09
10
11
12
<execution>
                        <id>upload-one</id>
                        <phase>package</phase>
                        <goals>
                            <goal>s3-upload</goal>
                        </goals>
                        <configuration>
                            <bucket>your-bucket</bucket>
                            <path>/path/to/local/directory</path>
                            <key>prefix</key>
                        </configuration>
                    </execution>

Загрузить в корень ведра.

01
02
03
04
05
06
07
08
09
10
11
<execution>
                        <id>upload-multiples-files-no-key</id>
                        <phase>package</phase>
                        <goals>
                            <goal>s3-upload</goal>
                        </goals>
                        <configuration>
                            <bucket>your-bucket</bucket>
                            <path>/path/to/local/directory</path>
                        </configuration>
                    </execution>

Это оно! Поскольку это проект с открытым исходным кодом, вы можете добавлять или отправлять запросы на получение пакетов на github .

Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. Смотрите оригинальную статью здесь: Загрузка и выгрузка файлов на S3 с помощью Maven.

Мнения, высказанные участниками Java Code Geeks, являются их собственными.