{{define "api-file-post"}}
POST/file

Description

Upload a file.

Parameters

Param Required Maximum Size Default Description
name false 255 Characters Multipart file name Name of the file to upload
file true 5 000 000 000 Bytes none Multipart file to upload

Returns

HTTP 200: OK
{
	"success": true,
	"id": "abc123" // ID of the newly uploaded file
}
HTTP 422: Unprocessable Entity
{
	"success": false,
	"value": "no_file",
	"message": "The file does not exist or is empty."
}
HTTP 500: Internal Server Error
{
	"success": false,
	"value": "internal",
	"message": "An internal server error occurred."
}
HTTP 413: Payload Too Large
{
	"success": false,
	"value": "file_too_large",
	"message": "The file you tried to upload is too large. Max 5000 MB allowed."
}
HTTP 500: Internal Server Error
{
	"success": false,
	"value": "writing",
	"message": "Something went wrong while writing the file to disk, the server may be out of storage space."
}
HTTP 413: Payload Too Large
{
	"success": false,
	"value": "name_too_long",
	"message": "File Name is too long, Max 255 characters allowed."
}
{{end}} {{define "api-file-id-get"}}
GET/file/{id}

Description

Returns the full file associated with the ID. Supports byte range requests.

Parameters

Param Required Location Description
id true URL ID of the file to request

Returns

A file output stream.
{{end}} {{define "api-file-id-download-get"}}
GET/file/{id}/download

Description

Same as GET /file/{id}, but with File Transfer HTTP headers. Will trigger a save file dialog when opened in a web browser. Also supports byte range requests.

{{end}} {{define "api-file-id-info-get"}}
GET/file/{id}/info

Description

Returns information about one or more files. You can also put a comma separated list of file IDs in the URL and it will return an array of file info, instead of a single object.

Parameters

Param Required Location Description
id true URL ID(s) of the file

Returns

HTTP 200: OK
{
	"success": true,
	"id": "123abc",
	"name": "screenshot.png",
	"date_upload": 1485894987, // Timestamp
	"date_last_view": 1485894987, // Timestamp
	"size": 5694837, // Bytes
	"views" 1234, // Amount of unique file views
	"mime_type" "image/png",
	"description": "File description",
	"mime_image": "http://pixeldra.in/res/img/mime/image-png.png", // Image associated with the mime type
	"thumbnail": "http://pixeldra.in/api/thumbnail/123abc" // Link to a thumbnail of this file
}
HTTP 404: Not Found
{
	"success": false,
	"value": "file_not_found"
}
{{end}} {{define "api-file-id-thumbnail-get"}}
GET/file/{id}/thumbnail

Description

Returns a PNG thumbnail image representing the file. The thumbnail is always 100*100 px. If the source file is parsable by imagemagick the thumbnail will be generated from the file, if not it will be a generic mime type icon.

Parameters

Param Required Location Description
id true URL ID of the file to get a thumbnail for

Returns

A PNG image of 100*100 px.

{{end}} {{define "api-file-id-delete"}}
DELETE/file/{id}

Description

Deletes a file. Only works when the users owns the file.

Parameters

Param Required Location Description
id true URL ID of the file to delete

Returns

HTTP 200: OK
{
	"success": true,
	"value": "file_deleted",
	"message": "The file has been deleted."
}
HTTP 404: Not Found
{
	"success": false,
	"value": "file_not_found",
	"message": "File ID was not found in the database."
}
HTTP 401: Unauthorized
{
	"success": false,
	"value": "unauthorized",
	"message": "You are not logged in."
}
HTTP 403: Forbidden
{
	"success": false,
	"value": "forbidden",
	"message": "This is not your file."
}
{{end}}