Upload to Remote Server

There are several options to upload images on a remote server, we will review the 3 main possibilities:

Private server

You might have access to a private server, the first step should be to contact your SysAdmin to enquire about your internal policies. You can also have a look at this tutorial on How To Configure SSH Key-Based Authentication on a Linux Server.

Once you've setup the server you can connect easily and upload your images using the scp command in bash. If your images are located in the /home/myname/images/ in your local computer and you want to upload them to /home/media/all_images/ on the remote server then you can use the command below.

scp -P 333 -r /home/myname/images/ yourusername@yourservername:/home/media/all_images/

The -r option means that you want to transfer the complete directory, -P 333 is the port number to use and yourusername/yourservername should be provided to you by your SysAdmin.

You will find a comprehensive tutorial on scp at Linux Academy.

Google Cloud Platform

If you have a GCP account then the first step will be to install gsutil, Google Services Command Line Interface. Simply refer to the Google official tutorial.

Install Google Services CLI
$ curl https://sdk.cloud.google.com | bash
$ exec -l $SHELL
$ gcloud init

You are now ready to transfer images to Google Cloud. The transfer is composed of two steps:

  • Upload the images to the platform.

  • Make them public so that Deepomatic Studio can download them.

Upload images to GCP and make them public
$ gsutil -m cp -r /home/myname/images/ gs://yourbucketname/all_images/
$ gsutil -m acl set -R -a public-read gs://yourbucketname/all_images/

The -m option in the gsutil commands ensure that the operations are parallelized, accelerating processing time depending on your machine.

Amazon Web Services S3

If you use AWS S3 instead of GCP you might want to have a look at the Amazon Installion Guide and also the Amazon Configuration Guide.

Install Amazon Web Services CLI
$ pip install awscli --upgrade --user
$ aws configure
Upload images to AWS s3 and make them public
$ aws s3 sync /home/myname/images/ yourbucketname/all_images/ --acl public-read

Note that both the uploading and making file public is done in one command.