There was a small amount of discussion about this here: https://groups.google.com/g/perkeep/c/B_Wq3ovph2I
At this point, it seems to more or less work. It is pretty much a ripoff of scanning cabinet, but oriented to work with pdfs rather than images. Since a pdf often contains multiple pages and I couldn't think of a reason for a pdf document to contain multiple pdfs, the relationship is 1:1.
I thought this is a good place to share what I have and see who it looks to folks.
I haven't yet implemented the 'who' functionality but don't think that will be too hard. Pretty much like tags, but with an attribute named something like 'pdfcabinet:who'.
Right now when displaying the pdf document, I'm using an
Another weirdness is that I am currently storing the filename of the pdf in the pdfcabinet:pdf permanode even though it is also in the file permanode. That is because I couldn't figure out how to efficiently grab it (I need it for each un-annotated pdf so I have something to identify the pdf to the user on the main page).
I'll probably also want to provide some facility for bulk uploading of already tagged and dated pdfs, but have not thought hard about this yet.
ui: remove obsolete code
http.ServeContent figures out the content type on its own, i also checked the headers in my browser with this patch (build with go1.19 though) .
The comment changes comes from go fmt.
app: add initial webdav support
This PR adds WebDAV support for perkeep as an app.
caveats:
only supports static elements (directory and file blobs) pointed at from a camliRoot with "camliPath:x" attributes
this also means that the content is read only
no integration tests yet
I intend on addressing those issues in subsequent PRs by adding support for dynamic directories (permanode with "camliPath:*" attribute or camliContent that points to a directory) and files (permanode with camliContent that points to a file) that will be writeable too.
I tested this with cadaver locally for now.
@tgulacsi you suggested this in the past, so tagging you here. wdyt?
addresses #38 #1392 #1017
misc: remove sha1 from tests, remove testhooks, minor cleanups
removed sha1 hashes from tests
removed internal/testhooks
use runtime.NumCPU as default reindex maxprocs
removed code that disables ooo indexing from tests ( since its not used anymore )
Repeated I/O errors when pushing lots of files
Whenever I try to put a large amount of files (say DCIM folder from a phone), I get I/O errors really often. It doesn't seem to matter whether or not I use pk-mount or the web UI. Using the fuse driver, this happens with both rsync and cp. With the web ui, I can watch consistent failures (usually throwing a 500) in the dev console.
I could give pk put file a try but I wasn't sure how to target a specific root and subnode for a destination
TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage. By leveraging smart contracts, client-side encryption, and sophisticated redundancy (via Reed-Solomon codes), TurtleDex allows users to safely store their data with hosts that they do not know or trust.
Rook is an open source cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments.
s3git: git for Cloud Storage. Distributed Version Control for Data. Create decentralized and versioned repos that scale infinitely to 100s of millions of files. Clone huge PB-scale repos on your local SSD to make changes, commit and push back. Oh yeah, it dedupes too and offers directory versioning.