Support Scala 3 (still minimal for Play modules)
- Update dependencies (#94):
// For Benji Google
//Remove dependency on: com.google.api.client.googleapis.auth.oauth2.GoogleCredential
import com.google.auth.oauth2.GoogleCredentials
- Various dependency updates
- Support Scala 2.13 (#50)
- Various dependency updates (#49)
- Support Play 2.7 (#26): Version for Benji Play module is now suffixes with Play major (e.g.
2.0.3-play26
) - Backward compatibility for Scala 2.11 (+ various dependency & build updates) (#25)
- Fix S3 copy encoding (#23)
- Support prefix filter when listing objects of a bucket (#24)
- Fix VFS resource management.
- Setup MiMa to enforce API compatibility.
- Support AWS signature V4
- Rename the project to Benji, with module specifications as
"com.zengularity.benji" %% "benji-x" % version
. - Upgrade to Scala 2.12, Akka Stream 2.5.4 and Play WS (standalone) 1.1.3.
- Easy storage configuration:
S3("s3:http://accessKey:secretKey@hostAndPort/?style=path")
- The delete operation now support a
recursive
option to be able to remove a bucket which still contains some object (by deleting them first); The delete behaviour has also been unified accross the modules (e.g. error handling in case the bucket to delete doesn't exist).
- Upgrade to Akka Stream 2.4.10 (with the provided
Flow.foldAsync
). - Apply the Akka Stream TestKit in the tests.
New VFS module
Akka Stream migration (see Play Migration guide).
The Bucket
, Object
and Bytes
case classes are moved to the package com.zengularity.storage
.
In the case class Bucket
, the property creationDate
is renamed to creationTime
.
In the case class Object
:
- the property
key
is renamed toname
, - the property
bytes
is renamed tosize
, and its type is updated toBytes
.
In the Bytes
value class, the property inBytes
is renamed to bytes
.
In the WSS3
class;
- The function
bucket(String)
now returns a value implementing the newBucketRef
interface. - The function
obj(String)
returns a value implementing the newObjectRef
interface.
The new ObjectRef
interface;
- The property
bucketName
is renamed tobucket
. - The property
objectName
is renamed toname
. - The
.get
function now returns aGetRequest
, that can be applied with some optional arguments (e.g. ContentRange). - The
.put[E, A]
function now returns aPutRequest
, that can be applied with some optional arguments. - The behaviour of the
.delete
function is now specified in case the referenced object doesn't exist: it returns a failure .
The WSS3ObjectRef
class is now an implementation of the generic ObjectRef
.
- The property
defaultMaxPart
is moved to the S3RESTPutRequest
, where it can be adjusted using.withMaxPart
.
The new BucketRef
interface;
- The
.objects
function now returns aListRequest
that can be applied with options, and must be called using.objects()
(with()
). TheListRequest
also provides a convenient.collect
function.
The new ObjectStorage
trait implemented by WSS3;
- The
.buckets
function now returns aBucketsRequest
, that can be applied.
The WSRequestBuilder
has been refactored as a sealed trait. The related PreparedRequest
case class is removed.
SLF4J is directly used for logging, instead of play.api.Logger
.
The utility Iteratees
is moved as com.zengularity.storage.Streams
, with the new consumeAtMost
function (used for the Google module).