LogoLogo
AboutOORT AIOORT StorageOORT Edge
  • What is OORT Storage
  • Getting Started
    • How it works
    • User Guide
      • Sign Up
      • Create a Bucket
      • Upload an Object
      • Download an Object
      • Delete Objects or Buckets
    • Billing and Pricing
      • Free Tier, Always Free
      • Pay-as-you-go Pricing
      • OORT Credits
      • Manage Your Payments
  • Manage Storage
    • Work with Buckets
    • Work with Objects
      • Objects Overview
      • Object Keys
      • Object Details
      • Upload Objects
      • Multipart Upload
      • Download Objects
      • Delete Objects
      • Share Objects
      • Use Folders
    • Storage Classes
    • Access Control
    • Tools and Clients
      • Use Rclone
      • Use AWS CLI
      • Use S3 Browser
      • Use Arq Backup
      • Use TntDrive
    • Sync files to OORT Storage
      • Step 1: Download the rclone
      • Step 2: Do the OORT Storage remote configuration
      • Step 3: Check where your files are stored in?
        • Google Drive
        • Amazon Drive
        • Tencent Cloud Object Storage (COS)
        • Alibaba Cloud (Aliyun) Object Storage System (OSS)
        • IPFS
        • Others
      • Step 4: Check the configuration
      • Step 5: Do the files syncs
  • Developing with OORT Storage
    • Access Keys
    • Use S3-Compatible API
  • OORT Storage for Business
    • Web3 Web Hosting
      • Upload Website
      • Backend Hosting
      • Publishing
Powered by GitBook
On this page
  • What is an object key?
  • Object naming rules
  1. Manage Storage
  2. Work with Objects

Object Keys

What is an object key?

The object key(or key name) uniquely identifies the object in an OORT Storage bucket. Object metadata is a set of name-value pairs.

When you create an object, you specify the key name, which uniquely identifies the object in the bucket. For example, on the OORT console, when you highlight a bucket, a list of objects in your bucket appears. These names are the object keys. The object key name is a sequence of Unicode characters with UTF-8 encoding of up to 1,024 bytes long.

The OORT Storage data model is a flat structure

You create a bucket, and the bucket stores objects. There is no hierarchy of subbuckets or subfolders. However, you can infer logical hierarchy using key name prefixes and delimiters as the OORT console does. In addition, the OORT console has support for folders.

Suppose that your bucket (admin-created) has four objects with the following object keys

Development/Projects.xls

Finance/statement1.pdf

Private/taxdocument.pdf

DSS-dg.pdf

The console uses the key name prefixes (Development/, Finance/, and Private/) and delimiter ('/') to present a folder structure. The OORT Storage-dg.pdf key does not have a prefix, so its object appears directly at the root level of the bucket. If you open the Development/ folder, you will see the Projects.xlsx object inside.

Object naming rules

You can use any UTF-8 character in an object key name. However, using certain characters in key names can cause problems with some applications and protocols. The following guidelines help you maximize compliance with DNS, web-safe characters, XML parsers, and other APIs.

Safe characters

The following character sets are generally safe for use in key names.

Alphanumeric characters

  • 0-9

  • a-z

  • A-Z

Special characters

  • Exclamation point (!)

  • Hyphen (-)

  • Underscore (_)

  • Period (.)

  • Asterisk (*)

  • Single quote (')

  • Open parenthesis (()

  • Close parenthesis ())

Characters that might require special handling

The following characters in a key name might require additional code handling and likely need to be URL encoded or referenced as HEX. Some of these are non-printable characters that your browser might not handle, which also requires special handling:

  • Ampersand ("&")

  • Dollar ("$")

  • ASCII character ranges 00–1F hex (0–31 decimal) and 7F (127 decimal)

  • 'At' symbol ("@")

  • Equals ("=")

  • Semicolon (";")

  • Plus ("+")

  • Space – Significant sequences of spaces might be lost in some uses (especially multiple spaces)

  • Comma (",")

  • Caret ("^")

  • Left curly brace ("{")

  • Right curly brace ("}")

  • Percent character ("%")

  • Grave accent / back tick ("`")

  • Right square bracket ("]")

  • Left square bracket ("[")

  • Tilde ("~")

  • 'Pound' character ("#")

Characters to avoid

Avoid the following characters in a key name because of significant special handling for consistency across all applications.

  • Forward slash ("/")

  • Colon (":")

  • Backslash ("\")

  • Question mark ("?")

  • Vertical bar / pipe ("|")

  • 'Greater Than' symbol (">")

  • 'Less Than' symbol ("<")

  • Quotation marks (""")

  • Asterisk ("*")

  • Non-printable ASCII characters (128–255 decimal characters)

XML related object key constraints

As specified by the XML standard on end-of-line handling, all XML text is normalized such that single carriage returns (ASCII code 13) and carriage returns immediately followed by a line feed (ASCII code 10) are replaced by a single line feed character. To ensure the correct parsing of object keys in XML requests, carriage returns and other special characters must be replaced with their equivalent XML entity code when they are inserted within XML tags. The following is a list of such special characters and their equivalent entity codes:

  • ' as &apos;

  • ” as &quot;

  • & as &amp;

  • < as &lt;

  • > as &gt;

  • \r as &#13; or &#x0D;

  • \n as &#10; or &#x0A;

The following example illustrates the use of an XML entity code as a substitution for a carriage return. This DeleteObjects request deletes an object with the key parameter: /some/prefix/objectwith\rcarriagereturn (where the \r is the carriage return).

<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Object>
    <Key>/some/prefix/objectwith&#13;carriagereturn</Key>
  </Object>
</Delete>
PreviousObjects OverviewNextObject Details

Last updated 1 year ago