AWS CLI in S3
AWS CLI (AWS Command Line Interface) is a command line interface for working with AWS services.
Customize AWS CLI
- Configure access to S3.
- Install the client.
- Create an AWS CLI configuration.
- Install the certificate.
1. Set up access to S3
Access can be configured by the Account Owner or a user with the role of iam.admin.
- Create a service user with a role with access to S3. If you use a service user with the role s3.user, object_storage_user or
s3.bucket.user, an access policy must be configured in the bucket and its rules must allow access to this user. - Issue an S3 key to the user.
2. Install the client
Use the Install or update to the latest version of the AWS CLI documentation from Amazon.
3. Create an AWS CLI configuration
-
Open the terminal.
-
Open the configuration mode:
aws configure -
Enter the
AWS Access Key ID,which is the value of the Access key field from the S3 key. -
Enter
AWS Secret Access Key- the value of the Secret key field from the S3 key. -
Enter
Default region name- the pool in which S3 is located (for example,ru-1). -
Enter
Default output formator leave blank. -
The settings will be saved in the configuration files:
-
credentials in
.aws/credentials:[default]aws_access_key_id = <access_key>aws_secret_access_key = <secret_key> -
default pool in
.aws/config:[default]region = <pool>
-
-
In the
.aws/configfile, add theendpoint_urlparameter:[default]region = <pool>endpoint_url = https://<s3_domain>Specify
<s3_domain>- the S3 API domain for the desired pool.
4. Install the certificate
Linux/macOS
Windows
-
Create a folder
~/.selectels3/:mkdir -p ~/.selectels3/ -
Download the certificate and place it in the
~/.selectels3/folder:wget https://secure.globalsign.net/cacert/root-r6.crt -O ~/.selectels3/root.crtopenssl x509 -inform der -in ~/.selectels3/root.crt -out ~/.selectels3/root.crtchmod 600 ~/.selectels3/root.crt -
In the
.aws/configconfiguration file, add a parameter:ca_bundle = ~/.selectels3/root.crt
Working with AWS CLI
For the command syntax, see the AWS instructions in Amazon's AWS documentation.
To work with S3 through the AWS CLI, use:
- s3api - commands corresponding to operations in the REST API;
- s3 - additional commands that simplify work with a large number of objects.
Output the list of buckets
-
Open the CLI.
-
Bring up a list of buckets:
aws s3 ls
Create a bucket
-
Open the CLI.
-
Create a bucket:
aws s3 mb s3://<bucket_name>Specify
<bucket_name>is the name of the new bucket.
View list of objects
-
Open the CLI.
-
Check out the list of facilities:
aws s3 ls --recursive s3://<bucket_name>Specify
<bucket_name>- the name of the bucket where you want to view the list of objects.
Load object
Easy loading
Load with condition
Booting from Object Lock
-
Open the CLI.
-
Load the object into the buckets:
aws s3 cp <path_to_object> s3://<bucket_name>/Specify:
<path_to_object>- path in the baket, where the object will be stored;<bucket_name>- name of the bucket where the object will be stored.
Get a reference to an object
You can get a link to an object in a public or private bucket via a Presigned URL. For more information about Presigned URLs, see Sharing objects with presigned URLs in the AWS documentation.
-
Open the CLI.
-
Get the link:
aws s3 presign s3://<bucket_name>/<path_to_object> --expires-in <time>Specify:
<bucket_name>- name of the bucket where the object is stored;<path_to_object>- path to the object in the baket;- optional:
--expires-in <time>- link expiration time, where<time>- timein seconds after which the link will stop working. If you don't add--expires-in <time>, the link will work for one hour.
Copy object
Simple copying
Conditional copying
-
Open the CLI.
-
Copy the object:
aws s3 cp s3://<bucket_name_1>/<path_to_object_1> s3://<bucket_name_2>/<path_to_object_2>Specify:
<bucket_name_1>- name of the bucket where the object to be copied is stored;<path_to_object_1>- path to the object to be copied in the bucket;<bucket_name_2>- name of the bucket to which the object will be copied;<path_to_object_2>- path in the baketable where the object will be stored.
Delete object
Simple removal
Conditional deletion
-
Open the CLI.
-
Delete the object:
aws s3 rm s3://<bucket_name>/<object_name>Specify:
<bucket_name>- bucket name;<object_name>- object name.