You may want to make use of Object Storage in your infrastructure. An S3-compatible service can be enabled for your tenant so you can store or retrieve data from buckets stored in the cloud, offered by both ECMWF and EUMETSAT.
At the moment the access to this service is not activated by default for every tenant. If you wish to use it, please raise an issue through the Support Portal requesting access to this service. |
You may also use this guide to use any other S3 storage service such as AWS from your instances at the European Weather Cloud. Just adapt the host and credential information accordingly.
S3cmd is a free command line tool and client for uploading, retrieving and managing data in Amazon S3 and other cloud storage service providers that use the S3 protocol.
Many other advanced tools (e.g. https://rclone.org/) exist, as do APIs for many languages, but this article aims only to demonstrate the basics.
The easiest is to install it through the system package manager
sudo yum install s3cmd |
Or for Ubuntu:
sudo apt install s3cmd |
Alternatively, you may get the latest version from PyPi
You will need to configure s3cmd
before you can use it. The tool will read the configuration on ~/.s3cfg
Create the configuration file if it does not exist:
touch ~/.s3cfg |
Edit the file and set up at least the following parameters.
ECMWF:
host_base = object-store.os-api.cci1.ecmwf.int
host_base = object-store.os-api.cci2.ecmwf.int
EUMETSAT endpoint: host_base =
s3.waw3-1.cloudferro.com
Fill in the <youraccesskey>
and <yoursecretkey>
that will be given to you by the provider
host_base = <EUM or ECMWF endpoint> host_bucket = access_key = <youraccesskey> secret_key = <yoursecretkey> use_https = True # Needed for EUMETSAT, as the provider currently supplies a "CloudFerro" SSL certificate. Skip if ECMWF. check_ssl_certificate = False |
Basic tasks
If you type s3cmd -h
you will see the different options of the command, but here are the basics:
s3cmd ls |
s3cmd mb s3://yourbucket |
s3cmd ls s3://yourbucket |
s3cmd get s3://newbucket/file.txt |
s3cmd put file.txt s3://newbucket/ |
s3cmd rm s3://newbucket/file.txt |
s3cmd rb s3://yourbucket/ |
s3cmd expire --expiry-days=14 s3://yourbucket/ |
s3cmd info s3://newbucket |
s3cmd dellifecycle s3://yourbucket/ |
You may also mount your bucket to expose the files in your S3 bucket as if they were on a local disk. Generally S3 cannot offer the same performance or semantics as a local file system, but it can be useful for legacy applications that mainly need to read data and expect the files to be in a conventional file system.
First of all, make sure you have S3FS installed in your VM. On CentOS:
sudo yum install epel-release yum install s3fs-fuse |
On Ubuntu:
sudo apt install s3fs |
You need to store your credentials in a file so S3FS can authenticate with the service. You need to replace <youraccesskey>
and <yoursecretkey>
by your actual credentials.
echo <youraccesskey>:<yoursecretkey> | sudo tee /root/.passwd-s3fs sudo chmod 600 /root/.passwd-s3fs |
Assuming you want to mount your bucket in /mnt/yourbucket
, here is what you need to do:
sudo mkdir /mnt/yourbucket echo "s3fs#yourbucket /mnt/yourbucket fuse _netdev,allow_other,nodev,nosuid,uid=$(id -u),gid=$(id -g),use_path_request_style,url=<s3_endpoint> 0 0" | sudo tee -a /etc/fstab sudo mount -a |
Again, you must replace <s3_endpoint>
by the relevant endpoint at ECMWF or EUMETSAT, and you may customise other mount options if you wish to do so. At this point you should have your bucket mounted and ready to use.
Related articles appear here based on the labels you select. Click to edit the macro and add or change labels.
|