Flickr is giving users a full terabyte of space, but has limitations in place for content. This guide shows you how to store any file on Flickr, including RAW images, ZIP files, and any other content. This process isn't very quick or very easy, but it allows you a free terabyte of cloud storage.
According to Flickr's Help Page, the following picture formats are allowed:
File sizes are up to 200 megabytes.
Although data can be crammed into JPEG and GIF files, PNG is the only lossless format. Therefore, a 100 megabyte file could be contained in a PNG picture of about the same size. This is the route I take for this guide.
Flickr also supports videos up to 1 gig in size. This could make a better container, but you'd need a lot of bandwidth and processing power to work with these.
The programs I wrote are in C. They aren't very complicated. You're welcome to use them however you want. Use the "compile.sh" script in linux, or type in the commands manually, to create the binaries. I'm sure MinGW can compile these for Windows too, but I haven't done it yet.
>> Download the files at the bottom of this page <<
You'll be making a computer-generated picture. Your input file (RAW, ZIP, whatever) will become pixels in the picture, along with some header data. The data is packed in order, starting with pixel 0,0 Red, Green, and Blue, then pixel 0,1 RGB, and so on. It creates a 24-bit PNG. (RGB only, no alpha.) The "flickr_encode" program computes the size of the picture and packs the data as follows:
Reversing this process, the "flickr_decode" program does the following:
In this demo, I'll store a RAW image, a bitmap (BMP), and a large video file on Flickr. Since the video is too big (more than 200 megs), I use 7zip (or could use a RAR container) to split it into multiple 150 meg files. Using this, we have the added bonus of encrypting the data.
SAM_4316_small.BMP
SAM_4316.SRW
video.mp4.7z.001
video.mp4.7z.002
Run the flickr_encode command:
$ ./flickr_encode SAM* video*
File SAM_4316_small.BMP.png size 180054 Encoding...
File SAM_4316.SRW.png size 20746632 Encoding...
File video.mp4.7z.001.png size 157286400 Encoding...
File video.mp4.7z.002.png size 157138687 Encoding...
The resulting PNG files are ready to upload to Flickr.
To validate the data, download the PNGs from Flickr and run the flickr_decode tool:
$ ls *.png
whatever1.png whatever2.png whatever3.png whatever4.png
$ ./flickr_decode *.png
File SAM_4316.SRW size 20746632 decoded
File SAM_4316_small.BMP size 180054 decoded
File video.mp4.7z.001 size 157286400 decoded
File video.mp4.7z.002 size 157138687 decoded
At this point, you have the original files back.
Flickr is made for organizing pictures. In Flickr's "Film Roll", the filenames are completely hidden. Since all the pictures end up being a snowy grey, it's difficult to find the file you need. Future implementations could allocate some space in the photo for displaying the filename or some kind of identifier, or even using a "cover picture" overlay. A cover picture would be perfect for storing RAW images. Say, 3 pixels for data and 1 pixel from the cover picture, so when the image size is reduced the picture is grey-washed but visible.