Closed smashwilson closed 8 years ago
It sounds like you're not planning on addressing (at least through this issue) any kind of differential asset upload. Is that correct?
Not initially, but this'll get us closer. Once we have bulk upload for envelopes and assets, we can add a handshaking request, where the submitter offers a set of checksums to see what it can leave out of the uploads.
I'm trying to keep this issue from becoming even more sprawling.
So, uh, now I am doing asset and envelope fingerprinting as part of this after all. Sprawl++
Is there a use case for eTags here?
Is there a use case for eTags here?
I don't think so, because our upload requests are performed in bulk. Part of my agenda is to accomplish a content repository publish with as few transactions as possible:
/bulkassets
. The response contains the new asset URLs for those assets./bulkcontent
.ETags are more of a request-by-request sort of thing, and even if you could attach more than one to a single request, they wouldn't prevent the submitter from needing to prepare and POST this giant tarball anyway. Unless I'm misremembering how they work, of course.
Still had my head in the individual content envelope model so I was thinking request-by-request. nm
I've split the doctest work into its own issue at deconst/strider-deconst-content#25, because I'm close to shipping bulk differential uploads without it. It'll still be a pretty natural extension.
Here's a full build of the how-to repository, even with buggy duplicate asset and envelope detection:
🐎 🐎 🐎
:metal: This is now live and working.
I've been talking about doing this for a while, but I haven't actually documented the full idea anywhere yet. This is what I want to do with the way that preparers work:
CONTENT_ROOT
or/usr/content-repo
), writing each envelope to aurl-encoded-content-id.json
file in anENVELOPE_DIR
, and copying each asset to anASSET_DIR
.CONTENT_STORE_URL
andCONTENT_STORE_APIKEY
. It submits all of the assets contained inASSET_DIR
to the content store, then submits all of the envelopes fromENVELOPE_DIR
. For bonus points and mad performance, it should do this in two HTTP transactions.This lets us:
conf.py
file) no longer needs an API key at all.Here's my rough checklist:
Follow-on issues: