1. 27 May, 2011 2 commits
    • Antony Chazapis's avatar
      Add license. · 6b7487fd
      Antony Chazapis authored
      Fixes #577
    • Antony Chazapis's avatar
      Provide metadata functions for tags and trash support. Restructure backend to... · 2f577992
      Antony Chazapis authored
      Provide metadata functions for tags and trash support. Restructure backend to work with blocks and hashmaps.
      List of major API updates (tested and ready changes are in the docs):
      * List object meta keys in container headers.
      * Filter object listings based on their meta keys.
      * Enforce metadata replacement on POST/COPY/MOVE.
      * Add Content-Range to range replies.
      * Return ETag in If-None-Match GET replies.
      * Handle multi-range GET replies as outlined in RFC2616.
      * Add Content-Disposition to the allowable object headers.
      * Implement block per block GET and PUT.
      * Better range parsing (and multiple ranges).
      The new backend is version-ready, but the API does not yet implement versions. The frontend exposes hashmaps through GET - this may change.
      Fixes #559
      Fixes #561
      Refs #563
  2. 26 May, 2011 1 commit
  3. 18 May, 2011 1 commit
  4. 17 May, 2011 4 commits
    • Giorgos Verigakis's avatar
    • Giorgos Verigakis's avatar
      Add a simple client for the API · 1d54f4cf
      Giorgos Verigakis authored
    • Sofia Papagiannaki's avatar
      Add unit tests for backend and API · b031b9f8
      Sofia Papagiannaki authored
      * Tests the OpenStack Object Storage API v1 functionality plus the extras
      * Tests the functionality of a BaseBackend which implements the API
      Fixes #451
      Fixes #453
    • Antony Chazapis's avatar
      Implement basic functionality plus some extras · 3c093bdb
      Antony Chazapis authored
      The API is based on the Apr. 15, 2011 release of the OpenStack Object Storage API v1.
      The implementation is broken up into two layers - frontend (API) and backend (data and metadata handling).
      The API is documented in the wiki. The following list is copied here for reference.
      List of differences from the OOS API and clarifications:
      * Authentication is done by another system. The token is used in the same way, but it is obtained differently. The top level GET request is kept compatible with the OOS API and allows for guest/testing operations.
      * Support for X-Account-Meta-* style headers at the account level. Use POST to update.
      * Support for X-Container-Meta-* style headers at the account level. Can be set when creating via PUT. Use POST to update.
      * Some processing is done in the variable part of all X-*-Meta-* headers. If it includes underscores, they will be converted to dashes and the first letter of all intra-dash strings will be capitalized.
      * All metadata replies, at all levels, include latest modification information.
      * At all levels, a GET request may use If-Modified-Since and If-Unmodified-Since headers.
      * A GET reply for a level will include all headers of the corresponding HEAD request.
      * To avoid conflicts between objects and virtual directory markers in container listings, it is recommended that object names do not end with the delimiter used.
      * The Accept header may be used in requests instead of the format parameter to specify the desired reply format. The parameter overrides the header.
      * Container/object lists use a 200 return code if the reply is of type json/xml. The reply will include an empty json/xml.
      * Container/object lists include all associated metadata if the reply is of type json/xml. Some names are kept to their OOS API equivalents for compatibility.
      * In headers, dates are formatted according to RFC 1123. In extended information listings, dates are formatted according to ISO 8601.
      * Object headers allowed, in addition to X-Object-Meta-*: Content-Encoding
      * Object MOVE support.
      Fixes #445
      Fixes #447
  5. 06 May, 2011 1 commit
  6. 05 May, 2011 8 commits
  7. 04 May, 2011 1 commit
  8. 03 May, 2011 4 commits
  9. 02 May, 2011 4 commits
  10. 29 Apr, 2011 1 commit
  11. 28 Apr, 2011 9 commits
  12. 27 Apr, 2011 2 commits
  13. 26 Apr, 2011 1 commit
  14. 25 Apr, 2011 1 commit