History | View | Annotate | Download (29.9 kB)
Fix conflict response when copying/moving.
Support cross-account copy and move.
Fixes #1241
Include susecond precision in RFC8601 times returned in extended listings.
Add timezone indicator in ISO8601 formatted dates.
Fixes #1231
Remove upload size limit.
Close backend connection. Fix empty read.
Use one backend instance per HTTP request
Use 'hashmap' parameter in object GET/PUT to use hashmaps.
Report allowed actions in cross-user object requests, with the 'X-Object-Allowed-To' header.
Fix computing hashmap hash.
Simplify hashmap_hash.
If the same user is both in read and write permissions, keep only the entry in write.
Return new version identifier in frontend. Document.
Accept '~' in X-Object-Sharing.
Fix TestGreek.
additional tests for updating object using x-source-object
Use Merkle hash for ETag when updating objects.
fix utf8 handling
additional tests written
Fix reading when apache does the dechunking.
Conditional object create/update.
Fix metadata keys in extended replies.
Fix web server compatibility.
Fix X-Container-Object-Meta.
Always return 'Last-Modified' header at the account level.
Cross-account operations in backend/API/docs.
Refs #763
Clean up authorization in the backend. Fix groups.
Merge branch 'master' of https://code.grnet.gr/git/pithos
Ignore the Accept header.
Fix If-Range.
extend api object write to accept xml formatted requests containing hashmap information instead of actual data
socket_read_iterator raises BadRequest if maximum size is reached
Fix Content-Length.
Object truncate.
Option to update an object using another object's data.
Bug fix.
Return the conflicting path in the reply, when refusing to change permissions because of a conflict.
Refs #449
New public objects implementation.
Fixes #595
If-Range header implementation in object GET
Add account groups, merge into sharing. Fix tests.
Add a dummy authentication middleware
The username - token mapping is stored statically in settings.py
You will need to update your settings.py after this commit.
Update versioning.
- Allow non-integer version identifiers.- Use 'X-Object-Modified-By' to trace the user that created a version.- Fix 'X-Object-Version-Timestamp' header formatting.
Rebuild the database, or:sqlite> alter table versions add column user text;...
Updated permissions support.
Document 'update' parameter. Add to account/container POST.
Fix version list and copy from version when the object is deleted.Remove 'public' from permissions.
Initial permissions support.
Refs #449Refs #595
Bug fixes.
Add an X-Object-Size response header
204 responses set Content-Length to 0 and a different header isneeded in order to get the object size.
Fix manifest and copy/move prefix parsing.
Large object support.
fixes chunked transfer data
Document versioning and public objects.
Fixes #593Fixes #595
Versioning extras, including account/container "time machine".
Limit metadata in object headers accessed via /public. Simplify implementation.
Refs #595
Pass account from request URL to backend functions and not request.user.
Support public files.
Use 'X-Object-Public' to mark files as public. Then they can be accessed via the /public URL without authentication.
Advanced versioning support. New backend.
- Everything is versioned in the backend.- Time-controlled account/container listings.- Initial API support with the 'version' parameter in object HEAD/GET.
Refs #593
Fix precondition check replies.
import missing hashlib
Fix Content-Range parsing.
Produce new ETag when updating an object (corrected).
Produce new ETag when updating an object.
Include storage type in container meta/hashmap replies. Minor doc updates.
Add license.
Fixes #577
Provide metadata functions for tags and trash support. Restructure backend to work with blocks and hashmaps.
Implement basic functionality plus some extras
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....
Update default settings. Minor changes.
Clean up, sort out logging.
Allow for account/container metadata.
Move to a better file organization
The Django project is a python package and needs to have aspecific name. We nest it inside the repository so that thename is under revision control.