Photo sharing (#19)
Artur Hefczyc opened 1 decade ago
Due Date
2017-05-31

As we have photo sharing function in mobile client, we want to have it on the web service as well. We just have to think it through.

Andrzej Wójcik (Tigase) commented 1 decade ago

File transfer between standalone xmpp client and web based client

Case 1 - Sending file from standalone client to web based client

  1. Sender sends file transfer request to receiver

  2. Receiver knowing about server component which will be able to receive file for him responds by sending server component endpoint for connection and notifies server component about accepted incoming file transfer.

  3. Sender uploads file to server component using Socks5 bytestreams

  4. Server component sends to receiver message with link and key needed to unlock file download.

Case 2 - Sending file from web based client to standalone client

  1. Sender sends file upload request to receiver

  2. Receiver accepts file transfer request by responding to sender

  3. Sender uploads file to web server

  4. Sender notifies server component about file identifier to send to receiver

  5. Server component sends file to receiver using Socks5 bytestreams or sends him link and key needed to unlock file download.

Questions

  1. Where to store uploaded files to be able to access it easily and be able to apply qouta? What about failover?

  2. When uploaded file should be deleted? (Automatic or Manual)

  3. Is it enough to store file id and key in database and send to receiver only link to page and key needed to unlock file download? (Security) or we need something more? (OpenID provider and OAuth client for Tigase based on bundled HTTP server to allow Tigase users to access external services to manage and store files?)

  4. Maybe we need service which will be able to manage uploaded files? (Something like SyncBox project?)

  5. If we decide not to integrate this service with bundled HTTP server do we need some kind of RPC to communicate with HTTP server responsible for upload download or we can do this on database level?

  6. Maybe it should be possible to use same component later to access files from SyncBox?

  7. Which file transfer protocols shouldbe supported? (XEP-0052, XEP-0234, XEP-0260, http://xmpp.org/extensions/inbox/jingle-httpft.html)

Bartosz Małkowski commented 1 decade ago

We should check if we can use (with OAUth for example) external services like Picasa to host our files.

Andrzej Wójcik (Tigase) commented 1 decade ago
  1. If we decide to store files on our servers we can try to use http://www.xtreemfs.org/. It works just like standard filesystem from application point of view while it replicates data and supports failover.
Artur Hefczyc commented 1 decade ago

There are, actually, quite a lot of such file systems, which are fault tolerant and distributed:

  1. http://www.gluster.org

  2. http://wiki.lustre.org/index.php/Main_Page

  3. http://www.moosefs.org

We would have to run some kind of research and tests to determine which one is best for our needs.

Andrzej Wójcik (Tigase) commented 1 decade ago

If we want to move this on we need to create some kind of file store component. Basicly it could be a simple service which would accept file transfer and store file (from XMPP or HTTP) and allow to retrieve it later using link or requesting a file (triggered by adhoc?). Management of this files on server could be done by simplified PubSub protocol (nodes would be folders, items would be files) and move of file from 1 folder to other would be done by adhoc command. For this we could later add web based UI on Sure.IM

Artur Hefczyc commented 1 decade ago

I think this is a nice feature and worth working on, however, demand for this is very low, hence priority for the task is very low as well. Please work on this if there is nothing else. I think audio/vide capabilities for our android/web client are higher priority than this.

Andrzej Wójcik (Tigase) commented 8 years ago

Now as we have HTTP File Upload implemented in Tigase XMPP Server 7.2.0, I think we should use it for this feature. For now we do not have "stable" version of 7.2.0 and 7.1.0 is not released yet, so I think we should wait with implementation of this feature until 7.1.0 will be release.

Andrzej Wójcik (Tigase) commented 8 years ago

Still waiting for 7.1.0 to be released.

issue 1 of 1
Type
Task
Priority
Minor
Assignee
RedmineID
564
Issue Votes (0)
Watchers (0)
Reference
tigase/_clients/sureim#19
Please wait...
Page is in error, reload to recover