Lyve Cloud Documentation

Limitations of S3 API calls

Bucket and object limitations

The table lists the limitations of buckets and objects and their associated actions.

Item

Specification

Maximum number of buckets

100 buckets per account.

Note

To create additional buckets (up to 1000 buckets), raise a Support Ticket. For more information, see Creating a support ticket.

Maximum number of objects per bucket

no-limit

Maximum object size

5 TiB

Minimum object size

0 B

Maximum object size per PUT operation

5 TiB

Maximum length for bucket names

63

Maximum length for object names

255

Multipart upload limitation

The table lists the multipart upload limitations.

Item

Specification

Maximum number of parts per upload

10,000

Part size range

5MiB to 5GiB. The last part can be 0 B to 5 GiB

Maximum number of parts returned per list parts request

10,000

Maximum number of objects returned per list objects request

4,500

Maximum number of multipart uploads returned per list multipart uploads request

1,000

Incompatible S3 API calls

The table lists S3 API calls that are incompatible.

S3 API

Description

ListMultipartUploads

This command does not list active multipart upload for a bucket name.

GetBucketLocation

This command returns the bucket location, regardless of a Signature v4 region different from the S3 endpoint region.

ListBuckets

This command lists all the buckets, regardless of a  Signature v4 region different from the S3 endpoint region.

ListObjectsV2

  • It returns owner information even if the fetch owner parameter is not passed.

  • It returns Key Count as 0 instead of 1 when the prefix does not have an object.

  • Using two consecutive slashes (//) in a prefix path results in an incorrect sequence of objects in a bucket.

  • Returns Key Count as 0 instead of 1 when the prefix does not have an object.

PutObjectRetention

It returns an HTTP 204 message on successful execution instead of HTTP 200.

HeadObject

Returns incorrect HTTP code if an object does not exist.

CompleteMultipartUpload

The Entity tag (ETag) value of an object received in response does not match with AWS S3.

Putobject

  • Uploading an object where the object key contains a new line character (0x0A) returns 503 as an incorrect error code.

  • Returns a different error message, whereas AWS returns a 400 error code when you specify the following parameters:

    • -content-length: Greater than the actual content length, Lyve Cloud does not return any error code.

    • --sse-customer-key : Less than or greater than 32 bytes, LyveCloud returns a 403 error code.

    • -object-lock-legal-hold-status : A random string is passed, LyveCloud allows uploading objects despite incorrect --object-lock-legal-hold-status.

    • --tagging : For multiple tagset with invalid separator, Lyve Cloud allows multiple tagset with invalid separator, but it splits the value from first =.

  • --metadata: LyveCloud returns capitalized keys when lowercase letters are passed.

UploadPartCopy

Using / (slash) as a prefix to the source bucket returns a 403 error.

For example, to copy the object logs/january.txt from bucket bucket1, use the header x-amz-copy-source path: bucket1/logs/january.txt instead of the x-amz-copy-source path: /bucket1/logs/january.txt.

Note

  • The prefix of the object containing a dot (".”) is not supported for any of the S3 API commands.

  • In Lyve Cloud, the custom metadata is stored in a different sequence than AWS S3.