During the last two weeks, we decide to do some changes at the URLs definitions and the stored metadata of each media.
Now, the URLs are:
POST /media/<entityId>
PUT, DELETE, GET /media/<entityId>/<mediaId>
POST, PUT, DELETE, GET /media/<entityId>/avatar
Also we defined two query parameters,
maxheight and
maxwidth, in this way, if the client sends a request like
GET /media/lounge@topics.buddycloud.org/aksdh10201d?maxheigth=100&maxwidth=100
The returned media is a preview of "
aksdh10201d " with dimensions that not exceed 100x100. It is assumed that the client will ask for previews of "thumbnailing" media, like images and videos.
Since
/media/<entityId>/<mediaId> and
/media/<entityId>/avatar can be confused by Restlet's router, I'm facing some problems due to that, I'm trying to figure out a solution that doesn't involve changing those defined URL templates.
Other significant change occurred at POST media request, now, the client should provide a
multipart/form-data with 6 parameters:
- uploadtoken: related to authentication process;
- filename: the real name of the file (including its extension);
- title: a title for the media (optional);
- description: media's description;
- author: the user that is uploading this file;
- binaryFile: the file content.
The server response is a JSON representation of the uploaded media metadata:
{
"id":"lETuJi8rPE4IfQrygN6rVtGx3",
"fileName":"testimage.jpg",
"author":"user@domain.com",
"title":"Test Image",
"mimeType":"application/octet-stream",
"description":"My Test Image",
"fileExtension":"jpg",
"shaChecksum":"bc46e5fac2f1cbb607c8b253a5af33181f161562",
"fileSize":60892,
"height":312,
"width":312,
"entityId":"channel@topics.domain.com"
}
Next week, I'm planning to fix the URL confusion issue, and develop the first XMPP functionalities, like upload/download media from public channels.