Getting Started Guide
Hosting Media and Files
In this part, we will describe how to host media and files on your server instead of the mesibo file server.
Hosting Media and Files on Your Server
As we learned before, mesibo allows you to send and receive any arbitrary file (image, audio, video, doc, etc) in real-time.
By default, all media and files you send are stored on the mesibo file server. However most mesibo users, especially those having sensitive data (financial institutes, healthcare, dating, etc.) prefer to store files on their servers. We also recommend that you should use the mesibo server only for initial development and use your own servers for deployment.
mesibo offers you the flexibility to store all media and files on your servers including private servers or cloud services like Amazon Web Services, Google Cloud Storage, Microsoft Azure, etc. When you choose to store files on your servers, mesibo does not know how and where you store your files. Hence you must assist mesibo in uploading and downloading files to your server.
There are two ways you can program mesibo to send files to your servers:
Option 1: Setup Upload URL
You can provide an upload URL and a random authentication token to mesibo by calling setUploadUrl.
Mesibo.setUploadUrl("https://your-server.com", authenticationToken);
Where authenticationToken
can be any string of your choice. The authenticationToken
will be sent along with the file so that you can authenticate your users and secure your uploads.
Mesibo will upload the file to this URL along with the following form
parameters:
- op = "upload"
- auth = Authentication Token set in
setUploadUrl
- uid = UID of the user
- mid = Message ID
- source = Source of the file (message, profile image, group profile image, etc)
Your server should respond with JSON data having the result
and the url
, for example,
{"result": true, "url": "https://example.com/file.jpg" }
Option 2: Setup File Transfer Handler (Android and iOS)
In case, setting up an upload URL does not meet your requirements, you can handle upload and download entirely by yourself by implementing upload and download handler functions in FileTransferHandler
, which is called by mesibo real-time API whenever it needs to upload or download files from your servers.
For more information, refer to the File Transfer Handler API
Option 2: Setup File Transfer Handler (Javascript)
In case, setting up an upload URL does not meet your requirements, you can handle upload entirely by yourself by implementing an upload handler and use setUploadHandler
to set it.
Mesibo.setUploadHandler(function(file, callback) {
// upload file object
callback(url);
});
mesibo will call your upload handler with a Javascript file
object and a callback
when it needs to upload a file. You can then upload a file and call callback
with uploaded file URL if the upload was successful, or call callback
with null if the upload failed.
If you have any questions, check out the File Handling FAQ