Hi,

CMIS 1.0 defers to AtomPub for the implementation of the
setContentStream operation (just do a PUT on the edit-media link). But
this does not allow setting the filename directly, which makes
higher-level abstraction layers like our Document#setContentStream
Java API not symmetrical and surprising to users.

I see several things we could do:
1. pass the filename in an additional Slug: header as suggested by
AtomPub (but only suggested for POSTs to collections),
2. pass the filename as an additional &filename=foo.png in the URL (or
x-opencmis-filename=...),
3. in the client library do an additional call to edit the
cmis:contentStreamFileName (suggested by AtomPub 9.6.1 in the
examples, "The client can edit the metadata for the picture...").

For the first two this would have to be done both on the client side
and on the server side so that we interoperate at least with
ourselves. The question is, which of those would likely be adopted by
others as "extensions", and maybe mentioned in CMIS 1.1 or 2.0.
The last one involves an additional round trip to the server.

Thoughts? I'm inclined to implement 3. for now, in
o.a.c.o.client.bindings.spi.atompub.ObjectServiceImpl.setContentStream.

Florent

-- 
Florent Guillaume, Director of R&D, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87

Reply via email to