Module Storage.AmazonS3Store

An Lwt-aware Amazon S3 bucket storage backend for a Zarr V3 hierarchy.

exception Request_failed of Aws_s3_lwt.S3.error
include Zarr.Storage.STORE with module Deferred = Deferred
module Deferred = Deferred
type t

The storage type.

module Group : sig ... end
module Array : sig ... end
val hierarchy : t -> (Zarr.Node.Array.t list * Zarr.Node.Group.t list) Deferred.t

hierarchy t returns p where p is a pair of lists representing all nodes in store t. The first element of the pair is a list of all array nodes, and the second element is a list of all group nodes. This operation returns a pair of empty lists if store t is empty.

  • raises Parse_error

    if any node has invalid node_type metadata.

val clear : t -> unit Deferred.t

clear t clears the store t by deleting all nodes. If the store is already empty, this is a no-op.

val with_open : ?scheme:[ `Http | `Https ] -> ?inet:[ `V4 | `V6 ] -> ?retries:int -> region:Aws_s3.Region.t -> bucket:string -> profile:string -> (t -> 'a Lwt.t) -> 'a Lwt.t

with_open ~region ~bucket ~profile f opens an S3 bucket store with bucket name bucket at region region using credentials specified by profile profile. The credentials are read locally from a ~/.aws/credentials file or from an IAM service if the profile or file is not available. Function f is applied to the store's open handle and its output is returned to the caller.

  • scheme is the HTTP scheme to use when connecting to S3, and must be one of `Http | `Https. Defaults to `Http.
  • inet is the IP version and must be one of `V4 | `V6. Defaults to `V4.
  • retries is the number of times to retry a request should it return an error.
  • raises Request_failed

    if an error occurs while sending a request to the S3 service.