Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This reminds me of my (now dead) open source Dropbox alternative Syncany [1] and all the different storage plugins I made for it [2]. Long story short, a storage plugin only had to implement the API methods upload, download, list and delete, so you could literally use anything as a storage backend (FTP, SFTP, S3, WebDAV, ..).

I made a few fun plugins that would encode data (after deduping, compressing and encrypting them) into PNG or BMP and store them on Flickr (which gave you 1TB of free storage for images) or Picasa (now Google Photos). It was actually relatively efficient and not slower than the other methods, and it looked super cool to have albums full of what looked like images of static. It was a blatant violation of their ToC, so obviously not serious.

The code is still online, it's from 2014/2015. The Flickr plugin with the PNG encoder is here [3], and I'm not entirely sure if I ever published the Picasa one.

[1] https://www.syncany.org/

[2] https://github.com/syncany?q=plugin

[3] https://github.com/syncany/syncany-plugin-flickr/tree/develo...



We maintain a similar Javascript library at work called jIO [1][2]. It provides the same API to different storages (currently Memory, IndexedDB, WebSql, WebDav, Dropbox, GoogleDrive, ERP5) plus handlers for functionality and complex storage trees (eg zip, union, query, replicate, crypt storage). It's relatively straightforward to extend and query data sources with an open API since you just have to reimplement the jIO API methods.

[1] https://jio.nexedi.com/ [2] https://github.com/nexedi/jio


I love these kinds of hacks. I can't remember how exactly it worked, but I remember a program or maybe browser extension from back before Google Drive existed that used Gmail's then-generous email storage space to store files.


Ah yes, gmailfs[1] in 2004 used Linux FUSE (Filesystem in USEerspace) to translate local directories to your (at that time, rapidly and absurdly growing) GMAIL quota.

FUSE let Linux do all kinds of interesting things. Forgot about this one, thanks!

[1] DSLreports discussion from 2004 https://www.dslreports.com/forum/r11192502-GmailFS


I had a project in college (~2007-2008) for this! My project partner and I set up a sharded filesystem using gmail account storage, storing metadata in the title and splitting encoded chunks across emails and accounts. The storage limit per gmail acct was in GB, but the attachment limit per email was ~20mb. We spent quite a few nights figuring out bugs in our algo to stitch together major and minor chunks of string-encoded binaries.

Once the cloud storage companies launched and provided free/cheap tiers for huge storage we mostly lost the need for it.


The gspace extension! - https://www.ghacks.net/2007/03/07/gspace-firefox-extension/

I still have emails that I uploaded with it. Need to sit-down and look how that extension worked


> a storage plugin only had to implement the API methods upload, download, list and delete, so you could literally use anything as a storage backend (FTP, SFTP, S3, WebDAV, ..)

In the desktop world, this is pretty much the same idea as FUSE [1] for filesystems. It's really fun/easy to use FUSE libraries in languages like Python [2] to make mountable filesystems this way, which then allows for integrations with all of your favorite local software / shell commands / etc.

[1] https://en.wikipedia.org/wiki/Filesystem_in_Userspace

[2] https://github.com/libfuse/python-fuse


I wonder if it would possible to use the golang cache server. :-)

> proxy.golang.org does not save all modules forever. There are a number of reasons for this, but one reason is if proxy.golang.org is not able to detect a suitable license. In this case, only a temporarily cached copy of the module will be made available, and may become unavailable if it is removed from the original source and becomes outdated. The checksums will still remain in the checksum database regardless of whether or not they have become unavailable in the mirror.

https://proxy.golang.org/


I've never heard of Syncany, but I took a similar approach for my personal file hosting application. I wonder if I could implement similar silly approaches to filestorage :p


This reminds me of when i used a google doc spreadsheet as my database. Moderators need to edit the db? No problem! Here is the link to the spread sheet. Need a previous version? No problem! Copy paste!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: