I think I've got a pretty good handle on how data is modeled in camlistore,
with blobs, metadata blobs, permanodes, and claims building a graph
stitching it all together, ala git.

I'm still a little bit confused by data is expected to flow in and out of
camlistore, between apps, handlers, importers, and the UI. (I do understand
that this part of camlistore is still a work in progress)

The use case I was trying to do today was basically just webserving. I
wanted to take a directory, load it into camlistore, and then serve those
files via HTTP. I tried:

mkdir junk
echo "first" >stuff/first.txt
echo "second" >stuff/second.txt

camput file --permanode stuff/

Then, in the UI, I added an claim to the stuff/ permanode to set camliRoot
to 'junkRoot'

Then, in my server-config.json, I added:

publish: {
  "/stuff/": {
    "camliRoot": "stuffRoot",
    "goTemplate": "gallery.html"
  }
}

and restarted camlistored. I tried to not specify a goTemplate, but it
insisted on having that key present. (I tried setting "goTemplate": "" but
no dice there, either)

I was hoping that I'd be able to get localhost:3179/stuff/first.txt with
this setup, but no go.

First, in order to get anything to show up under localhost:3179/stuff/, I
couldn't just have the file schema blobs as camliMembers of my 'stuff'
permanode the way camput created it- I had to create permanodes for
first.txt and second.txt and add those refs as camliMembers to the stuff
permanode.

Second, it renders everything some entries in the gallery template. I guess
that's not surprising since I told it to use the gallery. Camlistore
doesn't have a way of knowing that I didn't actually want to set that
config entry...

Finally, it does eventually give me a link to my file, but it's buried in a
URL like:
http://localhost:3179/stuff//-/hd27fc6a636/hb174f6a39c/=f/first.txt

(I saw Mathieu's warning about the publisher being in progress in the
latest code, so this is all against master checked out here:

commit ce8b329d1d62a4ff6ab87812f657914ae7625f6d
> Author: mpl <mathieu.lonja...@gmail.com>
> Date:   Thu Jun 23 16:07:57 2016 +0200
>     website: update CLA instruction
>
>     Change-Id: I399ad44a0ebdeff05efd1dabb3137299b01f112b


Is there a way to make the 'publisher' app just serve up files directly
with a more regular httpd dirlisting sort of view? Is there a legacy
handler that I could use? (I'm not super-keen on mounting this in FUSE and
serving that way, but if that's the answer, so be it)

I understand that many of the handlers and importers will be moving out of
bin/camlistored and into separate app processes, and camlistored will
become more like systemd/init/inetd in that it watches child processes and
directs traffic to and from those children. Do you have targets for other
apps that might be written?

Is it expected that users will use 3rd party apps or write their own apps
as regular operation, or is it more that anyone who writes an app will do
so with the eventual intention of getting it included in the regular
camlistore repo and releases? Is there a reason to prefer running an app
under camlistored vs spawning my own process next to camlistored?

My eventual use case is that I want to use camlistore as a host for a blog
generated by a static site generator like pelican or jeykll - besides
storing and serving the static HTML created by pelican, I want to write a
plugin to pelican to insert the permanode id for the post into the HTML
metadata about the page, so even if URL changes some day, the permanode
gives a really great rel=canonical opportunity in a decentralized world.
For this, I was hoping to use no code outside of camlistore for the actual
serving - camlistore would take care of the naming, and if a big file is
chunked by the rolling checksum into multiple blobs, the
publisher/handler/whatever takes care of reassembling the parts.

Are "publishers" a first-class concept, or is it just that the only real
app going right now is the publisher, and having multiple "publishers" is
really just running the same app multiple times, pointed at different
camliRoots and using different HTML templates? If my only option is to
write my own code to serve dirlisting files, is it more correct for me to
say I'm writing my own "app" or I am writing my own "publisher"?

I apologize if I'm not entirely clear in my email, and for asking so many
questions.

Thanks,

-Erik

-- 
You received this message because you are subscribed to the Google Groups 
"Camlistore" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to camlistore+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to