Object Storage Overview
    • PDF

    Object Storage Overview

    • PDF

    Article Summary

    Overview

    NAVER CLOUD PLATFORM’s Object Storage provides S3 API required to manage and use storage.

    Version: Amazon S3 v2006-03-01

    Request domain (endpoint)

    The Object Storage API supports both HTTP and HTTPS, but HTTPS is recommended for data protection.

    Request domain by region

    RegionRegion nameRequest domain
    Koreakr-standardhttps://kr.object.ncloudstorage.com
    American West (New)us-standardhttps://us.object.ncloudstorage.com
    Singapore (New)sg-standardhttps://sg.object.ncloudstorage.com
    Japan (New)jp-standardhttps://jp.object.ncpstorage.com
    German (New)de-standardhttps://de.object.ncloudstorage.com

    More regions will be added constantly.

    Authentication key (Credential)

    Go to My Page > Manage Account > Manage Auth Key in the portal page to get an API authentication key.

    The following sections describe all operations that can be used to access NAVER CLOUD PLATFORM’s Object Storage by using the S3 API.
    For more information on how to use each operation including code examples, refer to each page of bucket operations and object operations.

    Account operation

    The only account operation is to get a list of buckets that belong to an account. The number of buckets for an account can be up to 1,000.

    OperationDescription
    GET Account (List Buckets)Gets buckets that belong to the account.

    Bucket operations

    Bucket operations create, delete, get and control buckets.

    GET Bucket (List Objects) Version 2, which gets objects in a bucket, is not supported.

    OperationDescription
    PUT BucketCreates a bucket. The number of buckets for an account can be up to 1,000.
    GET Bucket (List Objects)Gets objects in the bucket. Up to 1000 objects can be listed at a time.
    HEAD BucketGets bucket headers.
    DELETE BucketDeletes empty buckets.
    PUT Bucket ACLCreates an access control list (ACL) to apply to the bucket.
    GET Bucket ACLGets ACLs applied to the bucket.
    PUT Bucket CORSCreates cross-origin resource sharing (CORS) settings to apply to the bucket.
    GET Bucket CORSGets CORS settings applied to the bucket.
    DELETE Bucket CORSDeletes CORS settings applied to the bucket.
    List Multipart UploadsGets multipart uploads that have not been completed or have canceled.

    Object operations

    Object operations create, delete, get and control objects.

    OperationDescription
    PUT ObjectAdds (uploads) an object to the bucket.
    PUT Object (Copy)Creates a copy of the object.
    GET ObjectGets (downloads) objects.
    HEAD ObjectGets object headers.
    DELETE ObjectDeletes objects from the bucket.
    DELETE Multiple ObjectsDeletes multipart objects from the bucket.
    PUT Object ACLCreates an ACL to apply to the object.
    GET Object ACLGets ACLs applied to the object.
    OPTIONS ObjectChecks CORS settings to see if you send a specific request.
    Initiate Multipart UploadCreates an upload ID for a set of parts to upload.
    Upload PartUploads a part of the object associated with the upload ID.
    Complete Multipart UploadCompletes separated objects with the part associated with the upload ID.
    Abort Multipart UploadAborts an upload and deletes the parts associated with the upload ID.

    Common header

    Common request header

    The following table describes common request headers supported by NAVER CLOUD PLATFORM’s Object Storage.

    Common headers other than those in the table will be ignored.

    Note that some requests may support other headers as described in this document.
    For more information on how to create an authentication header, refer to “Managing Access.”

    HeaderDescription
    AuthorizationRequired (AWS Signature Version 4)
    HostRequired
    x-amz-dateRequired. It can be specified as a date.
    x-amz-content-sha256Required only when an object is uploaded or the request information is included in the body.
    Content-LengthRequired only when an object is uploaded. Chunked encoding is supported.
    Content-MD5128-bit MD5 hash of the request body which is being sent.
    ExpectWait until the header is approved before sending the request body in case it is 100-continue.

    Common response header

    The following table describes common response headers.

    HeaderDescription
    Content-LengthLength of the request body (in bytes)
    ConnectionIndicates whether it is connected.
    DateTimestamp of the request message
    ETagMD5 hash value of the request message
    x-amz-request-idUnique ID created when the request is made.

    Error codes

    Error codeDescriptionHTTP status code
    AccessDeniedAccess denied.403 Forbidden
    BadDigestThe specified Content-MD5 does not match the content received.400 Bad Request
    BucketAlreadyExistsThe bucket name cannot be used. The namespace of the bucket is shared between all system users. Select another name and try again.409 Conflict
    BucketNotEmptyThe bucket you want to delete is not empty.409 Conflict
    CredentialsNotSupportedThe request does not support credentials.400 Bad Request
    EntityTooSmallThe size of the object to upload is smaller than the minimum size allowed.400 Bad Request
    EntityTooLargeThe size of the object to upload is larger than the maximum size allowed.400 Bad Request
    IncompleteBodyContent-Length HTTP header is not specified.400 Bad Request
    IncorrectNumberOfFilesInPostRequestYou can upload only one file with the POST method.400 Bad Request
    InlineDataTooLargeThe size of the inline data exceeds the maximum size allowed.400 Bad Request
    InternalErrorAn internal error occurred. Try again.500 Internal Server Error
    InvalidAccessKeyIdThe AWS access key ID does not exist in the database.403 Forbidden
    InvalidArgumentInvalid parameter.400 Bad Request
    InvalidArgumentThe MD5 hash of the secret key is invalid. MD5 hashes must be encoded with Base64.400 Bad Request
    InvalidArgumentThe MD5 hash does not match the value you entered.400 Bad Request
    InvalidBucketNameThe specified bucket is invalid.400 Bad Request
    InvalidBucketStateThe request is invalid in the current bucket state.409 Conflict
    InvalidDigestThe specified Content-MD5 is invalid.400 Bad Request
    InvalidEncryptionAlgorithmErrorThe specified encryption request is invalid. The available value is AES256.400 Bad Request
    InvalidLocationConstraintThe location constraint is invalid.400 Bad Request
    InvalidObjectStateThe operation is invalid in the current object state.403 Forbidden
    InvalidPartOne or more parts are not found. The missing parts are not uploaded or the specified entity tag does not match the entity tag of the part.400 Bad Request
    InvalidPartOrderThe list of parts is not sorted in ascending order. It must be sorted in ascending order of part numbers.400 Bad Request
    InvalidRangeThe requested range cannot be satisfied.416 Requested Range Not Satisfiable
    InvalidRequestUse the AWS4-HMAC-SHA256 algorithm.400 Bad Request
    InvalidSecurityThe security credentials you entered are invalid.403 Forbidden
    InvalidURIThe specified URI cannot be parsed.400 Bad Request
    KeyTooLongThe key is too long.400 Bad Request
    MalformedACLErrorThe XML format is invalid, or the posted schema is not validated.400 Bad Request
    MalformedPOSTRequestThe multipart/form-data value in the POST request body is invalid.400 Bad Request
    MalformedXMLThis error occurs when the malformed XML (XML that does not comply with the XSD specification) is sent. The error message is as follows: “The XML you provided was not well-formed or did not validate against our published schema."400 Bad Request
    MaxMessageLengthExceededThe request is too long.400 Bad Request
    MaxPostPreDataLengthExceededErrorThe POST request field before the file to upload is too big.400 Bad Request
    MetadataTooLargeThe header size of metadata exceeds the maximum size allowed.400 Bad Request
    MethodNotAllowedThe method cannot use this resource.405 Method Not Allowed
    MissingContentLengthContent-Length HTTP header must be provided.411 Length Required
    MissingRequestBodyErrorThis error occurs when you send an empty XML document. The error message is as follows: “Request body is empty."400 Bad Request
    NoSuchBucketThe bucket does not exist.404 Not Found
    NoSuchKeyThe key does not exist.404 Not Found
    NoSuchUploadThe multipart upload does not exist. The upload ID is invalid or the multipart upload may be aborted or completed.404 Not Found
    NotImplementedFeature not implemented.501 Not Implemented
    OperationAbortedConditional operations conflict with this resource. Try again.409 Conflict
    PreconditionFailedOne or more preconditions are not fulfilled.412 Precondition Failed
    RedirectTemporarily redirected to a new location.307 Moved Temporarily
    RequestIsNotMultiPartContentThe enclosure-type multipart/form-data property must be specified for bucket POST requests.400 Bad Request
    RequestTimeoutTimeout occurred before the socket is connected to the server.400 Bad Request
    RequestTimeTooSkewedThe time difference between the request time and the server time is too big.403 Forbidden
    SignatureDoesNotMatchThe signature you entered does not match the measured signature. Check the AWS secret key and signature method.403 Forbidden
    ServiceUnavailableMake a request less often.503 Service Unavailable
    ServiceUnavailableMake a request less often.503 Slow Down
    TemporaryRedirectTemporarily redirected to buckets while updating DNS.307 Moved Temporarily
    TooManyBucketsYou have attempted to create more buckets than allowed.400 Bad Request
    UnexpectedContentThe request does not support content.400 Bad Request
    UnresolvableGrantByEmailAddressThere is no account matching the email address you entered in the database.400 Bad Request
    UserKeyMustBeSpecifiedThe bucket POST request must contain the specified field name. If the field name is specified, check the order of fields.400 Bad Request

    Authentication

    NAVER CLOUD PLATFORM’s Object Storage API needs to be authenticated using the authorization header. For more information, Object Storage API Guide.

    Access control list

    You can grant permissions to access buckets and objects of NAVER CLOUD PLATFORM’s Object Storage to the users using the service.

    After signing up NAVER CLOUD PLATFORM’s Object Storage, you can get an ID available in Object Storage.
    This ID is used to set access permissions to buckets and objects.

    You can also grant public-read and public-write permissions to allow users to access the resources without authentication.

    The following table describes permission types and operations available for each permission type.

    PermissionGranted to bucketsGranted to objects
    READAllows grantees to read objects in the bucket.Allows grantees to read object data and metadata.
    WRITEAllows grantees to create a new object or overwrite or delete the existing object.N/A
    READ_ACPAllows grantees to read ACLs of buckets.Allows grantees to read ACLs of objects.
    WRITE_ACPAllows grantees to set ACLs of buckets.Allows grantees to set ACLs of objects.
    FULL_CONTROLAllows grantees to perform all the operations available with the READ, WRITE, READ_ACP, and WRITE_ACP permissions.Allows grantees to perform all the operations available with the READ, READ_ACP, and WRITE_ACP permissions.

    The following table describes default ACLs supported by NAVER CLOUD PLATFORM’s Object Storage. ACLs not included in the table are not supported.

    Default ACLTargetDescription
    privateBuckets and objectsGrants the owner FULL_CONTROL permissions (default).
    public-readBuckets and objectsGrants the owner FULL_CONTROL permissions, and all users READ permissions.
    public-read-writeBuckets and objectsGrants the owner FULL_CONTROL permissions, and all users READ and WRITE permissions.
    authenticated-readBuckets and objectsGrants the owner FULL_CONTROL permissions, and all users READ permissions.

    When READ permissions including public-read are applied to a bucket, grantees can only read the objects and cannot access them.


    Was this article helpful?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.