На вашем месте я бы использовал Spring Content . Тогда вам не нужно беспокоиться о том, как реализовать любой из этих кодов самостоятельно, и у вас будет гораздо больше возможностей для хранения ваших изображений сейчас и в будущем.
Существующее приложение Spring MVC довольно просто:
pom.xml
<dependency>
<groupId>com.github.paulcwarren</groupId>
<artifactId>spring-content-fs</artifactId>
<version>0.2.0</version>
</dependency>
<dependency>
<groupId>com.github.paulcwarren</groupId>
<artifactId>spring-content-rest</artifactId>
<version>0.2.0</version>
</dependency>
StoreConfig.java
@Configuration
@EnableFilesystemStores
@Import(RestConfiguration.class)
public class EnableFilesystemStoresConfig {
@Bean
File filesystemRoot() {
try {
return new File("/path/to/your/pdfs");
} catch (IOException ioe) {}
return null;
}
@Bean
FileSystemResourceLoader fileSystemResourceLoader() {
return new FileSystemResourceLoader(filesystemRoot().getAbsolutePath());
}
}
PdfStore.java
@StoreRestResource(path="pdfs")
public interface PdfStore extends Store<String> {
}
Вот и все. Теперь у вас будет полностью функциональный (POST, PUT, GET, DELETE) pEST-сервис на основе REST на /pdfs
, который будет использовать ваш PdfStore для хранения (и извлечения) PDF-файлов, хранящихся на сервере эластичных бинов на /path/to/your/pdfs
.
Итак ...
curl --upload-file example-pdf.pdf /pdfs/example-pdf.pdf
загрузит example-pdf.pdf и сохранит его в /path/to/your/pdf/example-pdf.pdf
на вашем сервере, затем:
GET /pdfs/example-pdf.pdf
вернет загрузить его.
Если вы хотите вместо этого хранить изображения в корзине S3, все, что вам нужно сделать, это изменить первую зависимость на spring-content-s3, обновить @Configuration
до @EnableS3Stores
и добавить сведения о соединении для корзины S3 , Справочные руководства находятся внизу этой страницы .
НТН