acdha / restful-bag-server Goto Github PK
View Code? Open in Web Editor NEWDraft protocol for serving BagIt repositories RESTfully
Draft protocol for serving BagIt repositories RESTfully
Can commit return a 200 iff a bag is complete and a 4XX code if not all files have been uploaded.
In addition to the PUT method to start a manual validity check it might be worthwhile to take a hint from cijoe and have a uri for last full validity check, independent of specific job. So it would return:
Could include last modified headers for when job was completed.
A payload could be retrieved with specific errors.
We need appropriate rel values for links - see http://tools.ietf.org/html/rfc5988#section-6.3.
The BagIt Spec is a little unclear on bag-info.txt, but the most liberal interpretation allows for repeated fields and ordering being significant. The json map may not be the optimal representation for a bag-info.txt.
Should a 400 return if manifests differ. What about re-ingesting manifests, or should that return a 409
Here's the commit testing I am putting into my sample server:
Build a test suite, possibly using the client library from #6, which validates expected behaviour particularly as regards the SHOULDs and MUSTs in the draft
How much detail should we keep for the validation history? Do we want to consider a standard form for a report?
Initial off-the-cuff suggestion: HTTP ranges on PUT to allow resuming transfers
Currently the spec defines certain elements as Atom, which introduces a fairly complex toolchain. Google's JSON-C seems like an attractive alternative:
http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html#JSON-C
Simple Python prototype which serves a directory of bags, generating resources like manifest as needed.
Possible option so that any specific versioning scheme is unimportant:
This should be a simple directory which could be used for client testing with a simple python -mSimpleHTTPServer
Should the spec say anything about supporting DELETE to /contents/data prior to a commit? Mike Smorul raised this question at the 05-13-2011 telecon. The theory is that DELETE could be useful for interactive assembly of bags.
Much of the content at LC resides on an HSM. To get access to the content, it must be staged from tape to spinning disk. This will take an indeterminate amount of time. A mechanism should be specified for the server to indicate to client that content is not immediately available, but will be at some point in the future, and for the client to check when the content is available for retrieval.
DELETE is allowed for entire bags, what about individual tag files, data files, manifest files?
How will bags of small files perform. Some concerns/options:
During the latest conference call, the question of endpoint discovery came up. We should consider exactly how people intend to use this protocol to determine whether we in fact do need a way to retrieve a list of endpoints and, if so, how that should work.
Accept: application/x-tar
, etc.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.