Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
Any thoughts on this layout and on how we get back thumbnails for any media?
S.
On Mon, 28 May 2012 15:59:02 -0300, Rodrigo Duarte <rodrig...@gmail.com> wrote:
Here is my progress last week
- say what you have done:Implemented the download method, and also, added resources to handle requests to avatars. Like the proposed idea, all avatars have id = 1, in this way, the urls are:GET/PUT /channel/{channelId}/media/avatar/1GET/PUT /user/{userId}/media/avatar/1- bottlenecks you face:Just lack of time, in last week and this one, I'm having a lot of things to do at the same time, so my productivity is in a low level.- what you plan to work on next week:Finish the avatar handling (with tests) and start the development of the xmpp component.Unfortunately, I have to do a project for the msc and it conflicts with our meeting. Can you share this with the other bc members? Any doubts or suggestions you can send me via email and I'll try to reply later =)
On Mon, May 21, 2012 at 3:36 PM, Rodrigo Duarte <rodrig...@gmail.com> wrote:
Hi Simon,Since I'll not be able to talk during the meeting, here is some points about the topic that you requested:
On Mon, May 21, 2012 at 10:55 AM, Simon Tennant <si...@buddycloud.com> wrote:
We have two calls tonight.
8pm: normal bc call.
9pm: GSOC call.
Let's keep then short and to the point:
- say what you have done,
Made some initial documentation to support the first steps development and also, commited some code, with upload files functionallity.To upload a file, the client must send a multipart/form-data, with two fields (more fields for authentication can be added later): a file description in json and the file itself (binary).The file description was based on the google drive API:{"id": string,"uploader": string,"title": string,"mimeType": string,"description": string,"uploadedDate": datetime,"lastViewedDate": datetime,"downloadUrl": string,"fileExtension": string,"md5Checksum": string,"fileSize": long,"length": long,"resolution": string}Attributes like "downloadUrl" is added by the server during the storing metadata process. md5 and fileSize are utils for client and server media integrity verification.I also made a test where a client is started and it successfully uploads a file.- bottlenecks you face
Is more a doubt about server side media handling: When an user uploads a video, the client should provide "resolution" and "length", in this way, the server should verify if the media uploaded is really a video with the provided properties? Maybe it adds some computation that would slow down the server.- what you plan to work on next week.
I'm planning to finish the upload and download methods (without authentication) in the next two weeks, for the next few weeks work on the xmpp side. Everything with tests, of course, of each success and fail scenario (for example, try to upload an empty file - size 0, etc).I also need to close some issues that I've opened last week at github.Please update your Trello bits before the call so we keep it structured.
And we push all architecture bits to the mailing list/appropriate channel.
See you at 8 or 9.
S.
--
Rodrigo Duarte Sousa
MSc candidate in Computer Science
Distributed Systems Laboratory
Federal University of Campina Grande
Campina Grande, PB - Brazil
http://lsd.ufcg.edu.br/~rodrigods
--
Rodrigo Duarte Sousa
MSc candidate in Computer Science
Distributed Systems Laboratory
Federal University of Campina Grande
Campina Grande, PB - Brazil
http://lsd.ufcg.edu.br/~rodrigods
-- Simon Tennant si...@buddycloud.com mobile: +49 17 8545 0880 office: +44 20 7043 6756 office: +49 89 4209 55854
Very good point Kirk. We should make sure to return oembed bits for any object. Oembed also has some good ideas on the thumbnail requests:
width (required)url parameter.height (required)url parameter.Responses of this type must obey the maxwidth and maxheight request parameters.
We should make sure to support this with our thumbnail and image requests.
S.
On Thu, 31 May 2012 10:40:10 +0100, Kirk Bateman <kirk.b...@gmail.com> wrote:
Morning all,
It might be worth looking into the oembed.com OEmbed spec to see if there is anything particularly relating to thumbnails that can be "appropriated" :)Cheers
Kirk
On 31 May 2012 10:37, Simon Tennant (buddycloud) <si...@buddycloud.com> wrote:
Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
- /media (we place anything to do with media under this endpoint (the HTTP server will just proxy anything to the media server)
- /media/<chann...@domain.com>
- POST new media to a channel
- returns the new mediaID and checksum on completed upload
- GET a list of all media in a channel
- /media/<chann...@domain.com>/
How does a service like flickr deal with DOS attacks like this?
S.
This will be done a lot in clients.... we should make sure it's optimised and we don't have extra roundtrips where necessary.
@james: I agree it makes no sense to be doing stretching on small images. But...S.
Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
- /media (we place anything to do with media under this endpoint (the HTTP server will just proxy anything to the media server)
- /media/<chann...@domain.com>
- POST new media to a channel
- returns the new mediaID and checksum on completed upload
- GET a list of all media in a channel
- /media/<chann...@domain.com>/<mediaID>
- GET an existing media file with this endpoint
- how do we call back the existing media vs a thumbnail or resized version?
- PUT,DELETE exisiting media by posting back to this endpoint
- /media/<channelname@domain.com/1
Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
- /media (we place anything to do with media under this endpoint (the HTTP server will just proxy anything to the media server)
- /media/<chann...@domain.com>
- POST new media to a channel
- returns the new mediaID and checksum on completed upload
- GET a list of all media in a channel
- /media/<chann...@domain.com>/<mediaID>
- GET an existing media file with this endpoint
- how do we call back the existing media vs a thumbnail or resized version?
- PUT,DELETE exisiting media by posting back to this endpoint
- /media/<channelname@domain.com/1
Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
- /media (we place anything to do with media under this endpoint (the HTTP server will just proxy anything to the media server)
- /media/<chann...@domain.com>
- POST new media to a channel
- returns the new mediaID and checksum on completed upload
- GET a list of all media in a channel
- /media/<chann...@domain.com>/<mediaID>
- GET an existing media file with this endpoint
- how do we call back the existing media vs a thumbnail or resized version?
- PUT,DELETE exisiting media by posting back to this endpoint
- /media/<channelname@domain.com/1
Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
- /media (we place anything to do with media under this endpoint (the HTTP server will just proxy anything to the media server)
- /media/<chann...@domain.com>
- POST new media to a channel
- returns the new mediaID and checksum on completed upload
- GET a list of all media in a channel
- /media/<chann...@domain.com>/<mediaID>
- GET an existing media file with this endpoint
- how do we call back the existing media vs a thumbnail or resized version?
- PUT,DELETE exisiting media by posting back to this endpoint
- /media/<channelname@domain.com/1
Hi Rodrigo.
Thanks for the update.
Let's think a little about how the endpoints should lookto make sense to developers. We want something that is clean and predictable. We also need a nice way to handle "special" media like avatars. Additionally we need to be able to query for a size of media to be returned (we don't want a mobile phone receiving a 3MB avatar).
Here's my proposal for how our endpoints could look:
- /media (we place anything to do with media under this endpoint (the HTTP server will just proxy anything to the media server)
- /media/<chann...@domain.com>
- POST new media to a channel
- returns the new mediaID and checksum on completed upload
- GET a list of all media in a channel
- /media/<chann...@domain.com>/<mediaID>
- GET an existing media file with this endpoint
- how do we call back the existing media vs a thumbnail or resized version?
- PUT,DELETE exisiting media by posting back to this endpoint
- /media/<channelname@domain.com/1