Skip to main content

Lyve Cloud Documentation

Lyve Cloud limitations

Bucket and object limitations

The table lists the limitations of buckets, objects, service accounts and permissions 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 (multipart upload)

5 TiB

Minimum object size

0 B

Maximum object size per PUT operation

5 GiB

Maximum length for bucket names

63

Maximum length for object names

1024. Note: if an object name exceeds 255 characters in length, it must contain one or more "/" characters. Furthermore, any segment between two "/" characters should not exceed 255 characters in length.

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 4GiB. 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

1,000

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 uploads using a bucket name. Add a prefix and the prefix value must be an object name to list the object multipart in the bucket.

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.

  • This command does not list the bucket Owner DisplayName.

ListObjectsV2

  • It returns owner information even if you do not pass the fetch owner parameter.

  • 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, Lyve Cloud allows uploading objects despite incorrect --object-lock-legal-hold-status.

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

  • --metadata: LyveCloud returns capitalized keys when you pass lowercase letters.

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.

GetObject

This command returns a content range of the first part number irrespective of the part number specified of the object.

Note

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

  • An object name same as the prefix is not supported.

    For example, Object with the name /A/B, where A is a prefix and B is the object name and another object with the name: /A is not supported.