API
Client
To simplify uploading and deleting files, you can use linx-client, which uses this API.
{% if using_auth %}Keys
This instance uses API Keys, therefore you will need to provide a key for uploading and deleting files.
To do so, add the Linx-Api-Key
header with your key.
Uploading a file
To upload a file, make a PUT request to {{ siteurl }}upload/
and you will get the url of your upload back.
Optional headers with the request
{% if not forcerandom %}Randomize the filename
Linx-Randomize: yes
Specify a custom deletion key
Linx-Delete-Key: mysecret
Specify an expiration time (in seconds)
Linx-Expiry: 60
Get a json response
Accept: application/json
The json response will then contain:
“url”: the publicly available upload url
“direct_url”: the url to access the file directly
“filename”: the (optionally generated) filename
“delete_key”: the (optionally generated) deletion key,
“expiry”: the unix timestamp at which the file will expire (0 if never)
“size”: the size in bytes of the file
“mimetype”: the guessed mimetype of the file
“sha256sum”: the sha256sum of the file,
Examples
Uploading myphoto.jpg
{% if using_auth %}$ curl -H "Linx-Api-Key: mysecretkey" -T myphoto.jpg {{ siteurl }}upload/
{{ siteurl }}{% if not forcerandom %}myphoto.jpg{% else %}7z4h4ut.jpg{% endif %}
{% else %}
$ curl -T myphoto.jpg {{ siteurl }}upload/
{{ siteurl }}{% if not forcerandom %}myphoto.jpg{% else %}wtq7pan.jpg{% endif %}
{% endif %}
Uploading myphoto.jpg with an expiry of 20 minutes
{% if using_auth %}$ curl -H "Linx-Api-Key: mysecretkey" -H "Linx-Expiry: 1200" -T myphoto.jpg {{ siteurl }}upload/
{{ siteurl }}{% if not forcerandom %}myphoto.jpg{% else %}jm295snf.jpg{% endif %}
{% else %}
$ curl -H "Linx-Expiry: 1200" -T myphoto.jpg {{ siteurl }}upload/
{{ siteurl }}{% if not forcerandom %}myphoto.jpg{% else %}1doym9u2.jpg{% endif %}
{% endif %}
Uploading myphoto.jpg with a random filename and getting a json response:
{% if using_auth %}$ curl -H "Linx-Api-Key: mysecretkey" -H "Accept: application/json"{% if not forcerandom %} -H "Linx-Randomize: yes"{% endif %} -T myphoto.jpg {{ siteurl }}upload/
{"delete_key":"...","expiry":"0","filename":"f34h4iu.jpg","mimetype":"image/jpeg",
"sha256sum":"...","size":"...","url":"{{ siteurl }}f34h4iu.jpg"}
{% else %}
$ curl -H "Accept: application/json"{% if not forcerandom %} -H "Linx-Randomize: yes"{% endif %} -T myphoto.jpg {{ siteurl }}upload/
{"delete_key":"...","expiry":"0","filename":"f34h4iu.jpg","mimetype":"image/jpeg",
"sha256sum":"...","size":"...","url":"{{ siteurl }}f34h4iu.jpg"}
{% endif %}
Overwriting a file
To overwrite a file you uploaded, simply provide the Linx-Delete-Key
header with the original file's deletion key.
Example
To overwrite myphoto.jpg
{% if using_auth %}$ curl -H "Linx-Api-Key: mysecretkey" -H "Linx-Delete-Key: mysecret" -T myphoto.jpg {{ siteurl }}upload/
{{ siteurl }}myphoto.jpg
{% else %}
$ curl -H "Linx-Delete-Key: mysecret" -T myphoto.jpg {{ siteurl }}upload/
{{ siteurl }}myphoto.jpg
{% endif %}
Deleting a file
To delete a file you uploaded, make a DELETE request to {{ siteurl }}yourfile.ext
with the delete key set as the Linx-Delete-Key
header.
Example
To delete myphoto.jpg
{% if using_auth %}$ curl -H "Linx-Api-Key: mysecretkey" -H "Linx-Delete-Key: mysecret" -X DELETE {{ siteurl }}myphoto.jpg
DELETED
{% else %}
$ curl -H "Linx-Delete-Key: mysecret" -X DELETE {{ siteurl }}myphoto.jpg
DELETED
{% endif %}
Information about a file
To retrieve information about a file, make a GET request the public url with Accept: application/json
headers and you will receive a json response containing:
“url”: the publicly available upload url
“direct_url”: the url to access the file directly
“filename”: the (optionally generated) filename
“expiry”: the unix timestamp at which the file will expire (0 if never)
“size”: the size in bytes of the file
“mimetype”: the guessed mimetype of the file
“sha256sum”: the sha256sum of the file,
Example
$ curl -H "Accept: application/json" {{ siteurl }}myphoto.jpg
{"expiry":"0","filename":"myphoto.jpg","mimetype":"image/jpeg","sha256sum":"...","size":"..."}