Extremely long object names

View as Markdown

AIStore fully supports extremely long object names through both its native API and S3-compatible API. This flexibility allows for complex naming schemes, deeply nested directory structures, and detailed metadata encoding within object names.

Table of Contents

Example: Using S3-Compatible API

1#
2# 1. Generate a 1024-character random string as our object name
3#
4$ export longname=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 1024)
5
6#
7# 2. Upload a file with the extremely long name via S3 API
8#
9$ s3cmd put README.md s3://mybucket/$longname
10
11upload: 'README.md' -> 's3://nnn/vB4yvlo5gh6XWXDa6vR9K6klxqxP7upf94ert8ncT5a8GJ5BPCQSvK0Jc1Jxyp9U8Ek643yFJ9MFFAdwv8TP7UynvGWvUI94nRwkpil9zpgNFxbEja237kklSwiVc9DulCLDXF25YwBFWuHINNVvU27fMy56l4vgoxyNhdKYRg4L45Bq5gyluRFSgMIuhOk3xcQqAIG62g4DB0Tex5q8Ap0JOOHIlm3jNBYVf2QcFVVBOZefsQeggyMjya1NVsTmDaYLRK0oUR970FV8BAWHo05yQW4S11FkPmAy8WbsaQqKtmO2qjJlnnflZ3ItE1Nt13Tb4ZPdVzm5Ev5DQiUGgHb9kgLXa43gsIy1sc1mWbB5PkDVoKpOHCXNaHsjKXBZ0JlvoGYh7PrJ5GhMcsxjbZqccoBsSe0u7tPesn4Zfvvx754VRmBD1W8MzQel2YmoDRLj3k2992odyWxp0zke68PpulRuLZIGQGSecSOivfyouqMz2YQ7lWl5hod0qGVN4VZTtCgSaScntOmpy1aAYDxNDm5uI601JtMIHMpXMIxyndYPAel0PH4HzFQ4dBiQDERWogoHRN4eU1vflZFpOesdyxIYhcR6VgZI9JFDdKlAZwzSv136UJ876lD4I1DEqGL03dLmEsitgn2uNE515Fa3srEbeb5KMWDQ2dfTUPr6NJEqvPZrObFJdRgrk2eWeajFWjl7TtxwgyjuqMye320R3z11SAaVoOa66As4ZHGz7YsDo3lSfdyFA2tFdvLIVvLEzpKWhoZyV8NATTuWYfDKotJU7LlvfDfXqsq25A6ycMYcGQn6i3n74Xo1Xpd8Ah88jWF8KCVviLr929Qy5UJTAQAwPUMFedW5ckrWPPX4Lc1Z7j7F0Zhf6vvKdgTX7WtzqFT4OmrLtbMXiSVSAUL3NELa9sc4DRScZvfpT11UMnAz0n8X8vjnaFUDPmwRuEcaO99tPN8g7fpLiMJYQXv1VCRzJlkrmipwCqc275mcvUOkBEx189DJ3Sq0zwIi' [1 of 1]
12 17242 of 17242 100% in 0s 8.86 MB/s done
13upload: 'README.md' -> 's3://nnn/vB4yvlo5gh6XWXDa6vR9K6klxqxP7upf94ert8ncT5a8GJ5BPCQSvK0Jc1Jxyp9U8Ek643yFJ9MFFAdwv8TP7UynvGWvUI94nRwkpil9zpgNFxbEja237kklSwiVc9DulCLDXF25YwBFWuHINNVvU27fMy56l4vgoxyNhdKYRg4L45Bq5gyluRFSgMIuhOk3xcQqAIG62g4DB0Tex5q8Ap0JOOHIlm3jNBYVf2QcFVVBOZefsQeggyMjya1NVsTmDaYLRK0oUR970FV8BAWHo05yQW4S11FkPmAy8WbsaQqKtmO2qjJlnnflZ3ItE1Nt13Tb4ZPdVzm5Ev5DQiUGgHb9kgLXa43gsIy1sc1mWbB5PkDVoKpOHCXNaHsjKXBZ0JlvoGYh7PrJ5GhMcsxjbZqccoBsSe0u7tPesn4Zfvvx754VRmBD1W8MzQel2YmoDRLj3k2992odyWxp0zke68PpulRuLZIGQGSecSOivfyouqMz2YQ7lWl5hod0qGVN4VZTtCgSaScntOmpy1aAYDxNDm5uI601JtMIHMpXMIxyndYPAel0PH4HzFQ4dBiQDERWogoHRN4eU1vflZFpOesdyxIYhcR6VgZI9JFDdKlAZwzSv136UJ876lD4I1DEqGL03dLmEsitgn2uNE515Fa3srEbeb5KMWDQ2dfTUPr6NJEqvPZrObFJdRgrk2eWeajFWjl7TtxwgyjuqMye320R3z11SAaVoOa66As4ZHGz7YsDo3lSfdyFA2tFdvLIVvLEzpKWhoZyV8NATTuWYfDKotJU7LlvfDfXqsq25A6ycMYcGQn6i3n74Xo1Xpd8Ah88jWF8KCVviLr929Qy5UJTAQAwPUMFedW5ckrWPPX4Lc1Z7j7F0Zhf6vvKdgTX7WtzqFT4OmrLtbMXiSVSAUL3NELa9sc4DRScZvfpT11UMnAz0n8X8vjnaFUDPmwRuEcaO99tPN8g7fpLiMJYQXv1VCRzJlkrmipwCqc275mcvUOkBEx189DJ3Sq0zwIi' [1 of 1]
14 17242 of 17242 100% in 0s 16.28 MB/s done
15
16#
17# 3. List objects in the bucket
18#
19$ s3cmd ls s3://mybucket
202025-04-09 09:45 17242 s3://mybucket/LWGKqSkJdRsN5ZoxKw3Z3TmfS7qM5OM54aPloJOTmaYzmswzf4LB5ARrWsyD3BXZsItCaKY5lTJzCb3XlAoBMdbymH875g7XCDgNYcqSEvLi14E3cTeQe4bzD1lrn3ZdDRubQuR3oCHHMRH6ny8R75s09rcVz1jlEiXLYuna7VmdCVVTFqUG6uDBV1pQZ8onAmOVm49Osr5GNWdjp0jP5e2AMpXodyzvlI3UISCu6QJYahDsmbMzCkeDqjm0qcX9xB9wdN28WijpDdgNB40SOsR21BOKhubgXxpKDP39Aj3oQaKz3zjXKNkkIvrtLLmq41qEKgbSWc8iZk2IZOjzFJcmi4G42mEy8t5eagKHylCyuxVfz72B9fRv7MaNJllLHKrZernHjQhHXu3RgoAdibx5qsoKTmZYTxeZNsBWn8IBE4oGrsGc99t638ETO7NBEnPW9Ibgxv0bpdwmfEwgzsvxmVrlAySuoBBuvYmL7KbY0PPBHtDe4gVfYYAg15Ba
212025-04-09 09:54 17242 s3://mybucket/vB4yvlo5gh6XWXDa6vR9K6klxqxP7upf94ert8ncT5a8GJ5BPCQSvK0Jc1Jxyp9U8Ek643yFJ9MFFAdwv8TP7UynvGWvUI94nRwkpil9zpgNFxbEja237kklSwiVc9DulCLDXF25YwBFWuHINNVvU27fMy56l4vgoxyNhdKYRg4L45Bq5gyluRFSgMIuhOk3xcQqAIG62g4DB0Tex5q8Ap0JOOHIlm3jNBYVf2QcFVVBOZefsQeggyMjya1NVsTmDaYLRK0oUR970FV8BAWHo05yQW4S11FkPmAy8WbsaQqKtmO2qjJlnnflZ3ItE1Nt13Tb4ZPdVzm5Ev5DQiUGgHb9kgLXa43gsIy1sc1mWbB5PkDVoKpOHCXNaHsjKXBZ0JlvoGYh7PrJ5GhMcsxjbZqccoBsSe0u7tPesn4Zfvvx754VRmBD1W8MzQel2YmoDRLj3k2992odyWxp0zke68PpulRuLZIGQGSecSOivfyouqMz2YQ7lWl5hod0qGVN4VZTtCgSaScntOmpy1aAYDxNDm5uI601JtMIHMpXMIxyndYPAel0PH4HzFQ4dBiQDERWogoHRN4eU1vflZFpOesdyxIYhcR6VgZI9JFDdKlAZwzSv136UJ876lD4I1DEqGL03dLmEsitgn2uNE515Fa3srEbeb5KMWDQ2dfTUPr6NJEqvPZrObFJdRgrk2eWeajFWjl7TtxwgyjuqMye320R3z11SAaVoOa66As4ZHGz7YsDo3lSfdyFA2tFdvLIVvLEzpKWhoZyV8NATTuWYfDKotJU7LlvfDfXqsq25A6ycMYcGQn6i3n74Xo1Xpd8Ah88jWF8KCVviLr929Qy5UJTAQAwPUMFedW5ckrWPPX4Lc1Z7j7F0Zhf6vvKdgTX7WtzqFT4OmrLtbMXiSVSAUL3NELa9sc4DRScZvfpT11UMnAz0n8X8vjnaFUDPmwRuEcaO99tPN8g7fpLiMJYQXv1VCRzJlkrmipwCqc275mcvUOkBEx189DJ3Sq0zwIi
22
23#
24# 4. Get object metadata
25#
26$ s3cmd info s3://mybucket/$longname
27s3://nnn/vB4yvlo5gh6XWXDa6vR9K6klxqxP7upf94ert8ncT5a8GJ5BPCQSvK0Jc1Jxyp9U8Ek643yFJ9MFFAdwv8TP7UynvGWvUI94nRwkpil9zpgNFxbEja237kklSwiVc9DulCLDXF25YwBFWuHINNVvU27fMy56l4vgoxyNhdKYRg4L45Bq5gyluRFSgMIuhOk3xcQqAIG62g4DB0Tex5q8Ap0JOOHIlm3jNBYVf2QcFVVBOZefsQeggyMjya1NVsTmDaYLRK0oUR970FV8BAWHo05yQW4S11FkPmAy8WbsaQqKtmO2qjJlnnflZ3ItE1Nt13Tb4ZPdVzm5Ev5DQiUGgHb9kgLXa43gsIy1sc1mWbB5PkDVoKpOHCXNaHsjKXBZ0JlvoGYh7PrJ5GhMcsxjbZqccoBsSe0u7tPesn4Zfvvx754VRmBD1W8MzQel2YmoDRLj3k2992odyWxp0zke68PpulRuLZIGQGSecSOivfyouqMz2YQ7lWl5hod0qGVN4VZTtCgSaScntOmpy1aAYDxNDm5uI601JtMIHMpXMIxyndYPAel0PH4HzFQ4dBiQDERWogoHRN4eU1vflZFpOesdyxIYhcR6VgZI9JFDdKlAZwzSv136UJ876lD4I1DEqGL03dLmEsitgn2uNE515Fa3srEbeb5KMWDQ2dfTUPr6NJEqvPZrObFJdRgrk2eWeajFWjl7TtxwgyjuqMye320R3z11SAaVoOa66As4ZHGz7YsDo3lSfdyFA2tFdvLIVvLEzpKWhoZyV8NATTuWYfDKotJU7LlvfDfXqsq25A6ycMYcGQn6i3n74Xo1Xpd8Ah88jWF8KCVviLr929Qy5UJTAQAwPUMFedW5ckrWPPX4Lc1Z7j7F0Zhf6vvKdgTX7WtzqFT4OmrLtbMXiSVSAUL3NELa9sc4DRScZvfpT11UMnAz0n8X8vjnaFUDPmwRuEcaO99tPN8g7fpLiMJYQXv1VCRzJlkrmipwCqc275mcvUOkBEx189DJ3Sq0zwIi (object):
28 File size: 17242
29 Last mod: Wed, 09 Apr 2025 09:54:30 GMT
30 MIME type: none
31 Storage: STANDARD
32 MD5 sum: 2940e853a9b97580df19b76d10d3ea31
33 SSE: none
34 Policy: none
35 CORS: none
36 ACL: none
37 x-amz-meta-ais-cksum-type: md5
38 x-amz-meta-ais-cksum-val: 2940e853a9b97580df19b76d10d3ea31
39
40#
41# 5. Confirm MD5
42#
43$ md5sum README.md
442940e853a9b97580df19b76d10d3ea31 README.md
45
46#
47# 6. Download the object with the long name
48#
49$ s3cmd get s3://mybucket/$longname ./downloaded-file.md

Example: Using Native API

1#
2# 1. Upload a file with an extremely long object name
3#
4$ ais put README.md mybucket/$longname
5
6#
7# 2. List objects with a specific prefix
8#
9$ ais ls ais://mybucket/$longname
10PROPERTY VALUE
11atime 09 Apr 25 09:54 EDT
12checksum md5[2940e853a9b97580...]
13name ais://nnn/.x9a4cca2da6fffe8cd9aa78442e66f1c2f722caa28293024ddcce5b25c162586c
14size 16.84KiB
15
16#
17# 3. Get object properties
18#
19$ ais show mybucket/$longname
20
21#
22# 4. Download the object
23#
24$ ais get mybucket/$longname ./downloaded-file.md

Features

  • No Practical Length Limits: AIStore can handle object names that are 4000+ characters long
  • Dual API Support: Access the same capabilities through either native API or S3 API
  • Full Path Preservation: Deep directory structures are maintained as-is
  • Consistent Performance: Long object names do not impact operational speed

References