jVolumes

An abstraction to handle different types of file storage

License

License

GroupId

GroupId

com.github.microtweak
ArtifactId

ArtifactId

jvolumes-parent
Last Version

Last Version

0.0.3
Release Date

Release Date

Type

Type

pom
Description

Description

jVolumes
An abstraction to handle different types of file storage
Project URL

Project URL

https://github.com/microtweak/jvolumes
Source Code Management

Source Code Management

https://github.com/microtweak/jvolumes

Download jvolumes-parent

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.microtweak/jvolumes-parent/ -->
<dependency>
    <groupId>com.github.microtweak</groupId>
    <artifactId>jvolumes-parent</artifactId>
    <version>0.0.3</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.microtweak/jvolumes-parent/
implementation 'com.github.microtweak:jvolumes-parent:0.0.3'
// https://jarcasting.com/artifacts/com.github.microtweak/jvolumes-parent/
implementation ("com.github.microtweak:jvolumes-parent:0.0.3")
'com.github.microtweak:jvolumes-parent:pom:0.0.3'
<dependency org="com.github.microtweak" name="jvolumes-parent" rev="0.0.3">
  <artifact name="jvolumes-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.github.microtweak', module='jvolumes-parent', version='0.0.3')
)
libraryDependencies += "com.github.microtweak" % "jvolumes-parent" % "0.0.3"
[com.github.microtweak/jvolumes-parent "0.0.3"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • core
  • provider-google-storage

jVolumes


An abstraction to handle different types of file storage

Problem

Storing files in the cloud (AWS S3, Google Cloud Storage, etc.) requires the use of the provider's SDK. Although these APIs are not complex, it is still a little tiring to use them.

The Spring Framework presents a very cool abstraction called Resource, which, in addition to the Spring Cloud, adds support for Amazon S3, Google Cloud Storage and Azure Blob Storage.

Unfortunately, Spring's Resource class does not have some operations like copying, moving and deleting files from these locations. And finally, if your project is not based on Spring, you can not the abstraction of the Spring Framework.

Solution

A small API inspired by the Resource of Spring Framework, but independent of Spring. This means that you can use it in any environment (Java EE/Jakarta EE, Spring).

FileResource.of("file://C:/images/book.jpg")
    .copyTo("s3://[your-s3-bucket]/book.jpg");
com.github.microtweak

Microtweak

Small libraries for micro tweaking (or small features) in frameworks you already know

Versions

Version
0.0.3
0.0.2
0.0.1