Upload, Download, Delete Objects

Upload, Download, Delete Objects

Once you’ve created a bucket in Akave O3, you can use standard AWS CLI commands to manage your objects. Below are examples using both aws s3api and the simpler aws s3 CLI syntax.

ℹ️
Important: Replace <YOUR_ENDPOINT_URL> in these examples with your specific endpoint URL. Find your endpoint in the Akave Environment page.

Upload an Object

Using aws s3api:

aws s3api put-object \
  --bucket my-akave-bucket \
  --key myfile.txt \
  --body ./myfile.txt \
  --endpoint-url <YOUR_ENDPOINT_URL>

Using aws s3:

aws s3 cp ./myfile.txt s3://my-akave-bucket/myfile.txt \
  --endpoint-url <YOUR_ENDPOINT_URL>
ℹ️
Akave O3 supports safe characters for object naming only. If using characters that require special handling please be aware that these are not fully supported and may cause issues with the O3 API. See Naming Amazon S3 objects for more information.

Multipart Upload Threshold

The AWS CLI uses multipart upload (MPU) to split large files into parts and upload them in parallel. The default threshold is 8MB, meaning any file over 8MB is automatically split — even when it provides no benefit.

For Akave O3, files under ~100MB see little to no difference between single stream and MPU uploads, while files 100MB and above see significantly faster uploads with MPU enabled. We recommend setting the threshold to 100MB:

aws configure set default.s3.multipart_threshold 100MB

This avoids unnecessary multipart overhead for smaller objects while ensuring large uploads benefit from parallel transfer.

Download an Object

Using aws s3api:

aws s3api get-object \
  --bucket my-akave-bucket \
  --key myfile.txt \
  ./downloaded-myfile.txt \
  --endpoint-url <YOUR_ENDPOINT_URL>

Using aws s3:

aws s3 cp s3://my-akave-bucket/myfile.txt ./downloaded-myfile.txt \
  --endpoint-url <YOUR_ENDPOINT_URL>

List Objects

Using aws s3api:

aws s3api list-objects \
  --bucket my-akave-bucket \
  --endpoint-url <YOUR_ENDPOINT_URL>

Using aws s3:

aws s3 ls s3://my-akave-bucket \
  --endpoint-url <YOUR_ENDPOINT_URL>

Total Size for All Objects in a Bucket

Using aws s3:

aws s3 ls s3://my-akave-bucket \
--recursive --human-readable --summarize \
--endpoint-url <YOUR_ENDPOINT_URL>

Delete an Object

Using aws s3api:

aws s3api delete-object \
  --bucket my-akave-bucket \
  --key myfile.txt \
  --endpoint-url <YOUR_ENDPOINT_URL>

Using aws s3:

aws s3 rm s3://my-akave-bucket/myfile.txt \
  --endpoint-url <YOUR_ENDPOINT_URL>

View an Object’s Root eCID

Objects uploaded using Akave O3 end up on the Akave network shortly after being uploaded depending on network activity. To see an object’s encrypted content identifier (eCID) you can use the head object command with the aws s3api:

aws s3api head-object \
  --bucket my-akave-bucket \
  --key myfile.txt \
  --endpoint-url=<YOUR_ENDPOINT_URL>

The eCID is then returned in the Metadata section of the response as Network-Root-Cid:

{
    "LastModified": "2024-05-15T00:00:00+00:00",
    "ContentLength": 2194339,
    "ChecksumType": "FULL_OBJECT",
    "ETag": "\"/AUFzg+DN6yA3d95WCR31g==\"",
    "MissingMeta": 0,
    "VersionId": "V1",
    "ContentType": "image/png",
    "ServerSideEncryption": "AES256",
    "Metadata": {
        "Network-File-Name": "4c8da9604c2cea1085d41b446e07c335deae60636feaf4d0fcf6d67cbadabd013ae209ab478f0cde06c7cb03fe",
        "Network-Processed": "100",
        "Network-Root-Cid": "bafybeicun4bwqcby46mcxicctyob6vjd4lid74k3c4lzfaifl56sghrt3q",
        "Network-State": "done"
    },
    "StorageClass": "default",
    "PartsCount": 0
}
Last updated on