You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							140 lines
						
					
					
						
							5.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							140 lines
						
					
					
						
							5.7 KiB
						
					
					
				| {% extends "base.html" %} | |
| 
 | |
| {% block head %} | |
| <link href="{{ sitepath }}static/css/github-markdown.css" rel="stylesheet" type="text/css"> | |
| {% endblock %} | |
| 
 | |
| {% block content %} | |
| <div id="main"> | |
|     <div id='inner_content'> | |
| 		<div class="normal markdown-body"> | |
| 
 | |
| 			<h2>API</h2> | |
| 
 | |
| 			<h3>Client</h3> | |
| 			<p>To simplify uploading and deleting files, you can use <a target="_blank" href="https://github.com/andreimarcu/linx-client">linx-client</a>, which uses this API.</p> | |
| 
 | |
| 			{% if using_auth %} | |
| 			<h3>Keys</h3> | |
| 			<p>This instance uses API Keys, therefore you will need to provide a key for uploading and deleting files.<br/> To do so, add the <code>Linx-Api-Key</code> header with your key.</p> | |
| 			{% endif %} | |
| 
 | |
| 			<h3>Uploading a file</h3> | |
| 
 | |
| 			<p>To upload a file, make a PUT request to <code>{{ siteurl }}upload/</code> and you will get the url of your upload back.</p> | |
| 
 | |
| 			<p><strong>Optional headers with the request</strong></p> | |
| 
 | |
| 			<p>Randomize the filename<br/> | |
| 			<code>Linx-Randomize: yes</code></p> | |
| 
 | |
| 			<p>Specify a custom deletion key<br/> | |
| 			<code>Linx-Delete-Key: mysecret</code></p> | |
| 
 | |
| 			<p>Specify an expiration time (in seconds)<br/> | |
| 			<code>Linx-Expiry: 60</code></p> | |
| 
 | |
| 			<p>Get a json response<br/> | |
| 			<code>Accept: application/json</code></p> | |
| 
 | |
| 			<p>The json response will then contain:</p> | |
| 
 | |
| 			<blockquote> | |
| 			<p>“url”: the publicly available upload url<br/> | |
| 			 “direct_url”: the url to access the file directly<br/> | |
| 			 “filename”:   the (optionally generated) filename<br/> | |
| 			 “delete_key”: the (optionally generated) deletion key,<br/> | |
| 			 “expiry”: the unix timestamp at which the file will expire (0 if never)<br/> | |
| 			 “size”: the size in bytes of the file<br/> | |
| 			 “mimetype”:   the guessed mimetype of the file<br/> | |
| 			 “sha256sum”:  the sha256sum of the file,</p> | |
| 			</blockquote> | |
| 
 | |
| 			<p><strong>Examples</strong></p> | |
| 
 | |
| 			<p>Uploading myphoto.jpg</p> | |
| 
 | |
| 			{% if using_auth %} | |
| 			<pre><code>$ curl -H "Linx-Api-Key: mysecretkey" -T myphoto.jpg {{ siteurl }}upload/   | |
| {{ siteurl }}myphoto.jpg</code></pre> | |
| 			{% else %} | |
| 			<pre><code>$ curl -T myphoto.jpg {{ siteurl }}upload/   | |
| {{ siteurl }}myphoto.jpg</code></pre> | |
| 			{% endif %} | |
| 
 | |
| 			<p>Uploading myphoto.jpg with an expiry of 20 minutes</p> | |
| 
 | |
| 			{% if using_auth %} | |
| 			<pre><code>$ curl -H "Linx-Api-Key: mysecretkey" -H "Linx-Expiry: 1200" -T myphoto.jpg {{ siteurl }}upload/ | |
| {{ siteurl }}myphoto.jpg</code></pre> | |
| 			{% else %} | |
| 			<pre><code>$ curl -H "Linx-Expiry: 1200" -T myphoto.jpg {{ siteurl }}upload/ | |
| {{ siteurl }}myphoto.jpg</code></pre> | |
| 			{% endif %} | |
| 
 | |
| 			<p>Uploading myphoto.jpg with a random filename and getting a json response:</p> | |
| 
 | |
| 			{% if using_auth %} | |
| 			<pre><code>$ curl -H "Linx-Api-Key: mysecretkey" -H "Accept: application/json" -H "Linx-Randomize: yes" -T myphoto.jpg {{ siteurl }}upload/   | |
| {"delete_key":"...","expiry":"0","filename":"f34h4iu.jpg","mimetype":"image/jpeg", | |
| "sha256sum":"...","size":"...","url":"{{ siteurl }}f34h4iu.jpg"}</code></pre> | |
| 			{% else %} | |
| 			<pre><code>$ curl -H "Accept: application/json" -H "Linx-Randomize: yes" -T myphoto.jpg {{ siteurl }}upload/   | |
| {"delete_key":"...","expiry":"0","filename":"f34h4iu.jpg","mimetype":"image/jpeg", | |
| "sha256sum":"...","size":"...","url":"{{ siteurl }}f34h4iu.jpg"}</code></pre> | |
| 			{% endif %} | |
| 
 | |
| 			<h3>Overwriting a file</h3> | |
| 
 | |
| 			<p>To overwrite a file you uploaded, simply provide the <code>Linx-Delete-Key</code> header with the original file's deletion key.</p> | |
| 
 | |
| 			<p><strong>Example</p></strong> | |
| 
 | |
| 			<p>To overwrite myphoto.jpg</p> | |
| 
 | |
| 			{% if using_auth %} | |
| 			<pre><code>$ curl -H "Linx-Api-Key: mysecretkey" -H "Linx-Delete-Key: mysecret" -T myphoto.jpg {{ siteurl }}upload/ | |
| {{ siteurl }}myphoto.jpg</code></pre> | |
| 			{% else %} | |
| 			<pre><code>$ curl -H "Linx-Delete-Key: mysecret" -T myphoto.jpg {{ siteurl }}upload/ | |
| {{ siteurl }}myphoto.jpg</code></pre> | |
| 			{% endif %} | |
| 
 | |
| 			<h3>Deleting a file</h3> | |
| 
 | |
| 			<p>To delete a file you uploaded, make a DELETE request to <code>{{ siteurl }}yourfile.ext</code> with the delete key set as the <code>Linx-Delete-Key</code> header.</p> | |
| 
 | |
| 			<p><strong>Example</strong></p> | |
| 
 | |
| 			<p>To delete myphoto.jpg</p> | |
| 
 | |
| 			{% if using_auth %} | |
| 			<pre><code>$ curl -H "Linx-Api-Key: mysecretkey" -H "Linx-Delete-Key: mysecret" -X DELETE {{ siteurl }}myphoto.jpg | |
| DELETED</code></pre> | |
| 			{% else %} | |
| 			<pre><code>$ curl -H "Linx-Delete-Key: mysecret" -X DELETE {{ siteurl }}myphoto.jpg | |
| DELETED</code></pre> | |
| 			{% endif %} | |
| 
 | |
| 			<h3>Information about a file</h3> | |
| 
 | |
| 			<p>To retrieve information about a file, make a GET request the public url with <code>Accept: application/json</code> headers and you will receive a json response containing:</p> | |
| 
 | |
| 			<blockquote> | |
| 			<p>“url”: the publicly available upload url<br/> | |
| 			 “direct_url”: the url to access the file directly<br/> | |
| 			 “filename”:   the (optionally generated) filename<br/> | |
| 			 “expiry”: the unix timestamp at which the file will expire (0 if never)<br/> | |
| 			 “size”: the size in bytes of the file<br/> | |
| 			 “mimetype”:   the guessed mimetype of the file<br/> | |
| 			 “sha256sum”:  the sha256sum of the file,</p> | |
| 			</blockquote> | |
| 
 | |
| 			<p><strong>Example</strong></p> | |
| 
 | |
| 			<pre><code>$ curl -H "Accept: application/json" {{ siteurl }}myphoto.jpg | |
| {"expiry":"0","filename":"myphoto.jpg","mimetype":"image/jpeg","sha256sum":"...","size":"..."}</code></pre> | |
| 		</div> | |
|     </div> | |
| </div> | |
| {% endblock %}
 |