# AWS CLI advanced commands

## General commands syntax

This section is designed to explain the low-level '**s3api**' commands for the CLI

```
aws s3api <Command> [<Arg> ...]
```

{% tabs %}
{% tab title="Syntax" %}

```
aws s3api --profile=impossiblecloud --endpoint-url=https://eu-central-2.storage.impossibleapi.net <ACTION> <FILE SOURCE> <FILE DESTINATION>
```

{% endtab %}
{% endtabs %}

## Supported low-level commands

### Bucket-level

| **Action**                                       | **Command**                               |
| ------------------------------------------------ | ----------------------------------------- |
| CreateBucket                                     | `aws s3api create-bucket`                 |
| DeleteBucket                                     | `aws s3api delete-bucket`                 |
| HeadBucket                                       | `aws s3api head-bucket`                   |
| GetBucketLocation                                | `aws s3api get-bucket-location`           |
| GetBucketCORS                                    | `aws s3api get-bucket-cors`               |
| PutBucketCORS                                    | `aws s3api put-bucket-cors`               |
| DeleteBucketCORS                                 | `aws s3api delete-bucket-cors`            |
| GetBucketEncryption (GetEncryptionConfiguration) | `aws s3api get-bucket-encryption`         |
| PutBucketEncryption (PutEncryptionConfiguration) | `aws s3api put-bucket-encryption`         |
| DeleteBucketEncryption                           | `aws s3api delete-bucket-encryption`      |
| GetBucketTagging                                 | `aws s3api get-bucket-tagging`            |
| PutBucketTagging                                 | `aws s3api put-bucket-tagging`            |
| DeleteBucketTagging                              | `aws s3api delete-bucket-tagging`         |
| GetBucketVersioning                              | `aws s3api get-bucket-versioning`         |
| PutBucketVersioning                              | `aws s3api put-bucket-versioning`         |
| GetObjectLockConfiguration (bucket)              | `aws s3api get-object-lock-configuration` |
| PutObjectLockConfiguration (bucket)              | `aws s3api put-object-lock-configuration` |
| ListBucket (ListObjects)                         | `aws s3api list-objects`                  |
| ListBucketVersions                               | `aws s3api list-object-versions`          |
| ListBucketMultipartUploads                       | `aws s3api list-multipart-uploads`        |
| ListBuckets                                      | `aws s3api list-buckets`                  |

### Object-level

| **Action**                 | **Command**                       |
| -------------------------- | --------------------------------- |
| HeadObject                 | `aws s3api head-object`           |
| GetObject                  | `aws s3api get-object`            |
| GetObjectVersion           | `aws s3api get-object`            |
| GetObjectAttributes        | `aws s3api get-object-attributes` |
| GetObjectVersionAttributes | `aws s3api get-object-attributes` |
| GetObjectTagging           | `aws s3api get-object-tagging`    |
| GetObjectVersionTagging    | `aws s3api get-object-tagging`    |
| PutObject                  | `aws s3api put-object`            |
| PutObjectTagging           | `aws s3api put-object-tagging`    |
| PutObjectVersionTagging    | `aws s3api put-object-tagging`    |
| DeleteObject               | `aws s3api delete-object`         |
| DeleteObjectVersion        | `aws s3api delete-object`         |
| DeleteObjectTagging        | `aws s3api delete-object-tagging` |
| DeleteObjectVersionTagging | `aws s3api delete-object-tagging` |
| PutObjectRetention         | `aws s3api put-object-retention`  |
| GetObjectRetention         | `aws s3api get-object-retention`  |
| PutObjectLegalHold         | `aws s3api put-object-legal-hold` |
| GetObjectLegalHold         | `aws s3api get-object-legal-hold` |
| CopyObject                 | `aws s3api copy-object`           |
| ListObjects                | `aws s3api list-objects`          |
| ListObjectsV2              | `aws s3api list-objects-v2`       |

### Multipart & Batch

| **Action**                       | **Command**                                                                                                 |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| CreateMultipartUpload            | `aws s3api create-multipart-upload`                                                                         |
| UploadPart                       | `aws s3api upload-part`                                                                                     |
| UploadPartCopy                   | `aws s3api upload-part-copy`                                                                                |
| ListParts                        | `aws s3api list-parts`                                                                                      |
| CompleteMultipartUpload          | `aws s3api complete-multipart-upload`                                                                       |
| AbortMultipartUpload             | `aws s3api abort-multipart-upload`                                                                          |
| DeleteObjects (batch)            | `aws s3api delete-objects`                                                                                  |
| BypassGovernanceRetention (flag) | *(use with `delete-object` / `delete-objects`; e.g., add `--bypass-governance-retention` after the bucket)* |

## Examples

You can find examples of some most useful commands [here](https://docs.impossiblecloud.com/impossible-cloud-help/impossible-cloud-storage-guide/cli-user-guide/aws-cli-commands-1/examples).

## Links and references

You can find more information in the AWS CLI [user guide](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/index.html) and [developers guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html).
