133 lines
4.3 KiB
Markdown
133 lines
4.3 KiB
Markdown
Open Photo API / Photo Upload
|
|
=======================
|
|
#### OpenPhoto, a photo service for the masses
|
|
|
|
----------------------------------------
|
|
|
|
### Purpose of the Photo Upload API
|
|
|
|
This API is used to upload a new photo for a user.
|
|
|
|
----------------------------------------
|
|
|
|
### Endpoint and parameters
|
|
|
|
_Authentication: required_
|
|
|
|
POST /photo/upload.json
|
|
|
|
1. photo (required), The photo to be uploaded.
|
|
* This can be the binary photo in multipart/formdata
|
|
* This can be the base64 encoded value of the photo in application/x-www-form-urlencoded
|
|
1. tags (optional), A comma delimited string of alpha numeric strings.
|
|
1. latitude (optional), A decimal representation of latitude.
|
|
1. longitude (optional), A decimal representation of longitude.
|
|
1. returnOptions (optional), A string instructing a specific version of the photo to be autogenerated.
|
|
The url will be present in the response as _requestedUrl_.
|
|
* 300x300 - A photo which maintains aspect ratio and fits inside a 300x300 square
|
|
* 1024x768xCR - A photo that's exactly 1024x768 pixels cropped to the center in an optimized manner
|
|
* 160x90xBWxCR - A photo that's cropped exactly to 160x90 in greyscale (black and white)
|
|
|
|
----------------------------------------
|
|
|
|
### Example
|
|
|
|
#### Command line curl
|
|
|
|
curl -F 'photo=@/path/to/photo.jpg' -F 'tags=dog,cat' http://jmathai.openphoto.me/photo/upload.json
|
|
|
|
#### PHP
|
|
|
|
$ch = curl_init('http://jmathai.openphoto.me/photo/upload.json');
|
|
curl_setopt(
|
|
$ch,
|
|
CURLOPT_POSTFIELDS,
|
|
array('photo' => '@/path/to/photo.jpg', 'tags' => 'dog,cat', returnOptions' => '300x300')
|
|
);
|
|
curl_exec($ch);
|
|
|
|
----------------------------------------
|
|
|
|
### Response
|
|
|
|
The response is a [Photo][Photo] object.
|
|
|
|
{
|
|
"message":"Photo 8i uploaded successfully",
|
|
"code":200,
|
|
"result":{
|
|
"tags":[
|
|
"dog",
|
|
"cat"
|
|
],
|
|
"pathBase":"\/base\/201107\/1311053366-huge.jpg",
|
|
"appId":"opme",
|
|
"host":"testjmathai1.s3.amazonaws.com",
|
|
"dateUploadedMonth":"07",
|
|
"status":"1",
|
|
"hash":"6d7a9b0af31073a76ff2e79ee44b5c4951671fa2",
|
|
"width":"4288",
|
|
"dateTakenMonth":"07",
|
|
"dateTakenDay":"03",
|
|
"permission":"0",
|
|
"pathOriginal":"\/original\/201107\/1311053366-huge.jpg",
|
|
"exifCameraMake":"NIKON CORPORATION",
|
|
"size":"5595",
|
|
"dateTaken":"1309707719",
|
|
"height":"2848",
|
|
"views":"0",
|
|
"dateUploadedYear":"2011",
|
|
"dateTakenYear":"2011",
|
|
"creativeCommons":"BY-NC",
|
|
"dateUploadedDay":"18",
|
|
"dateUploaded":"1311053403",
|
|
"exifCameraModel":"NIKON D90",
|
|
"longitude":"-89.24",
|
|
"latitude":"37.65",
|
|
"path300x300":"\/custom\/201107\/1311053366-huge_300x300.jpg",
|
|
"id":"8i",
|
|
"requestedUrl":"\/custom\/201107\/1311053366-huge_300x300.jpg"
|
|
}
|
|
}
|
|
|
|
----------------------------------------
|
|
|
|
### Specification
|
|
|
|
#### Content type multipart/formdata
|
|
|
|
Preferred. You can post to this API using [multipart/formdata][multipart].
|
|
|
|
POST /photo/upload.json HTTP/1.1
|
|
Host: jmathai.openphoto.me
|
|
Content-Type: multipart/form-data; boundary=----------------SOMERANDOMSEPARATOR
|
|
-----------------------------SOMERANDOMSEPARATOR
|
|
Content-Disposition: form-data; name="tags"
|
|
disneyland,epcotcenter
|
|
-----------------------------SOMERANDOMSEPARATOR
|
|
Content-Disposition: form-data; name="longitude"
|
|
123.456
|
|
-----------------------------SOMERANDOMSEPARATOR
|
|
Content-Disposition: form-data; name="latitude"
|
|
135.246
|
|
-----------------------------SOMERANDOMSEPARATOR
|
|
Content-Disposition: form-data; name="photo";
|
|
filename="/path/to/your/photo.jpg"
|
|
Content-Type: image/gif
|
|
|
|
{your_binary_content_here}
|
|
-----------------------------SOMERANDOMSEPARATOR--
|
|
|
|
#### Content type application/x-www-form-urlencoded
|
|
|
|
You can post to this API using [application/x-www-form-urlencoded][urlencoded] and base64 encoding the photo.
|
|
|
|
|
|
POST /photo/upload.json HTTP/1.1
|
|
Host: jmathai.openphoto.me
|
|
|
|
photo=base64_encoded_string_representation_of_your_photo
|
|
|
|
[multipart]: http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2
|
|
[urlencoded]: http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1
|
|
[Photo]: https://github.com/openphoto/frontend/blob/master/documentation/schemas/Photo.markdown
|