2.1. BPMN for Accessor¶
2.1.1. Short description of Dtos¶
public class AccessorBucket {
  /**
   * Bucket name
   */
  private String id;
  /**
   * Site for this Bucket
   */
  private String site;
  /**
   * Creation or Deletion datetime
   */
  private Instant creation;
  /**
   * Optional expiry datetime
   */
  private Instant expires;
  /**
   * Status of this Bucket
   */
  private AccessorStatus status = AccessorStatus.UNKNOWN;
public class AccessorObject {
  /**
   * Internal Id
   */
  private String id;
  /**
   * Site for this Object
   */
  private String site;
  /**
   * Bucket name
   */
  private String bucket;
  /**
   * Object name
   */
  private String name;
  /**
   * Optional: SHA 256 hash
   */
  private String hash;
  /**
   * Status of this Object
   */
  private AccessorStatus status = AccessorStatus.UNKNOWN;
  /**
   * Creation or Modification datetime
   */
  private Instant creation;
  /**
   * Optional expiry datetime
   */
  private Instant expires;
  /**
   * Length of the content of this Object
   */
  private long size;
  /**
   * Metadata if any for this Object
   */
  private final Map<String, String> metadata = new HashMap<>();
Note: Metadata keys must be lower case, starting with a letter [a-z], following by any letter [a-z], number [0-9] and “_”. This is a limitation coming from Cloud storages. Values can be string containing anything but limited in size globally (< 2KB).
public class AccessorFilter {
  /**
   * Optional Prefix for the name, including path
   */
  private String namePrefix;
  /**
   * Optional list of status to filter on
   */
  private AccessorStatus[] statuses;
  /**
   * Optional datetime for creation before this date
   */
  private Instant creationBefore;
  /**
   * Optional datetime for creation after this date
   */
  private Instant creationAfter;
  /**
   * Optional datetime for expiry before this date
   */
  private Instant expiresBefore;
  /**
   * Optional datetime for expiry after this date
   */
  private Instant expiresAfter;
  /**
   * Optional length filter less than this length
   */
  private long sizeLessThan;
  /**
   * Optional length filter greater than this length
   */
  private long sizeGreaterThan;
  /**
   * Optional metadata filter based on equality
   */
  private final Map<String, String> metadataFilter = new HashMap<>();
2.1.2. Status logic¶
Status for Objects and Buckets¶
2.1.3. Bucket¶
Create Bucket¶
Check Local Existence Bucket (GET for Metadata)¶
Check Local/Remote Existence Bucket (GET for Metadata)¶
Delete Bucket¶
List Buckets¶
2.1.4. Object¶
Create Object¶
Check Local Existence Object or GET Metadata¶
Check Local/Remote Existence Object or GET Metadata¶
Get Local Object’s Content¶
Get Local/Remote Object’s Content¶
Delete Object¶
List Objects in Bucket¶
2.1.5. Object with special Buffered option¶
Create Object with Buffered Option¶
Get Local/Remote Object’s Content with Buffered option¶
2.1.6. Bucket Internal¶
Specific implementations for Internal Accessor:
Check Existence and Get Metadata for Local Bucket¶
2.1.7. Object Internal¶
Specific implementations for Internal Accessor:
Get Local Object’s Content¶