$# Hypo -- Quickly share stuff
$# Copyright (C) 2013 Tom Willemse
$#
$# Hypo is free software: you can redistribute it and/or modify it
$# under the terms of the GNU Affero General Public License as
$# published by the Free Software Foundation, either version 3 of the
$# License, or (at your option) any later version.
$#
$# Hypo is distributed in the hope that it will be useful, but WITHOUT
$# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
$# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
$# Public License for more details.
$#
$# You should have received a copy of the GNU Affero General Public
$# License along with Hypo. If not, see
This is hypo. Hypo is supposed to be an easy way to share/store code snippets and other files.
Once setup it will not show much of anything, first you'll have to upload something.
Uploading is done with the PUT
HTTP method.
An example with curl:
# curl --upload-file README.org http://yourserver.example.com/ 2>/dev/null http://yourserver.example.com/abcdef1
After uploading a file to the server it will respond
with the url of your newly uploaded file. If you browse
to this URL using your favorite browser you will find a
page showing the file. For text files it will try to
provide some syntax highlighting, for certain types of
images (currently jpg
, png
and gif
) it will show the image.
If Hypo doens't know what kind of file you're uploading it will default to treating it as a text file.
All files can be viewed (from, for example, your web browser) in three different ways. The regularly, raw and as download.
The regular way shows a web page with the file either
syntax highlighted using pygments
or (in
case it is an image) with the image shown on the page.
This is viewed by using the URL printed after upload has
completed. For example:
http://yourserver.example.com/abcdef1
The raw view is just the file, saving this file is the
same as downloading it. This is viewed by prefixing the
last part of the URL with raw/
. For
example:
http://yourserver.example.com/raw/abcdef1
The download view is the same as the raw view except
that the Content-Disposition
header has
been set to attachment
. This causes a
download dialog to show up instead of your browser
trying to render it. This is viewed by prefixing the
last part of the URL with dl/
. For example:
http://yourserver.example.com/dl/abcdef1
After you have uploaded a file you can delete it again
by using the DELETE
HTTP method. An example
with curl:
# curl -XDELETE http://yourserver.example.com/abcdef1 Successfully removed abcdef1
There is currently no way to authenticate yourself with the server, so anyone can delete (also post) files. Of course they would first have to know the URL to send the delete to.
Hypo tries to stay simple to work with, at least on the client-side. However, some clients may make things easier. Currently there is only the (incomplete) Emacs client and a simple CLI client.