Method: googleapis.storage.v1.objects.compose

Concatenates a list of existing objects into a new object in the same bucket.

Arguments

Parameters
destinationBucket

string

Required. Name of the bucket containing the source objects. The destination object is stored in this bucket.

destinationObject

string

Required. Name of the new object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.

destinationPredefinedAcl

enum

Apply a predefined set of access controls to the destination object.

Enum type. Can be one of the following:
authenticatedRead Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
bucketOwnerFullControl Object owner gets OWNER access, and project team owners get OWNER access.
bucketOwnerRead Object owner gets OWNER access, and project team owners get READER access.
private Object owner gets OWNER access.
projectPrivate Object owner gets OWNER access, and project team members get access according to their roles.
publicRead Object owner gets OWNER access, and allUsers get READER access.
ifGenerationMatch

string (int64 format)

Makes the operation conditional on whether the object's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the object.

ifMetagenerationMatch

string (int64 format)

Makes the operation conditional on whether the object's current metageneration matches the given value.

kmsKeyName

string

Resource name of the Cloud KMS key, of the form projects/my-project/locations/global/keyRings/my-kr/cryptoKeys/my-key, that will be used to encrypt the object. Overrides the object metadata's kms_key_name value, if any.

userProject

string

The project to be billed for this request. Required for Requester Pays buckets.

body

object (ComposeRequest)

Required.

Raised exceptions

Exceptions
ConnectionError In case of a network problem (such as DNS failure or refused connection).
HttpError If the response status is >= 400 (excluding 429 and 503).
TimeoutError If a long-running operation takes longer to finish than the specified timeout limit.
TypeError If an operation or function receives an argument of the wrong type.
ValueError If an operation or function receives an argument of the right type but an inappropriate value. For example, a negative timeout.

Response

If successful, the response contains an instance of Object.

Subworkflow snippet

Some fields might be optional or required. To identify required fields, refer to the API documentation.

YAML

- compose:
    call: googleapis.storage.v1.objects.compose
    args:
        destinationBucket: ...
        destinationObject: ...
        destinationPredefinedAcl: ...
        ifGenerationMatch: ...
        ifMetagenerationMatch: ...
        kmsKeyName: ...
        userProject: ...
        body:
            destination:
                acl: ...
                bucket: ...
                cacheControl: ...
                componentCount: ...
                contentDisposition: ...
                contentEncoding: ...
                contentLanguage: ...
                contentType: ...
                crc32c: ...
                customTime: ...
                customerEncryption:
                    encryptionAlgorithm: ...
                    keySha256: ...
                etag: ...
                eventBasedHold: ...
                generation: ...
                id: ...
                kind: ...
                kmsKeyName: ...
                md5Hash: ...
                mediaLink: ...
                metadata: ...
                metageneration: ...
                name: ...
                owner:
                    entity: ...
                    entityId: ...
                retentionExpirationTime: ...
                selfLink: ...
                size: ...
                storageClass: ...
                temporaryHold: ...
                timeCreated: ...
                timeDeleted: ...
                timeStorageClassUpdated: ...
                updated: ...
            kind: ...
            sourceObjects:
                generation: ...
                name: ...
                objectPreconditions:
                    ifGenerationMatch: ...
    result: composeResult

JSON

[
  {
    "compose": {
      "call": "googleapis.storage.v1.objects.compose",
      "args": {
        "destinationBucket": "...",
        "destinationObject": "...",
        "destinationPredefinedAcl": "...",
        "ifGenerationMatch": "...",
        "ifMetagenerationMatch": "...",
        "kmsKeyName": "...",
        "userProject": "...",
        "body": {
          "destination": {
            "acl": "...",
            "bucket": "...",
            "cacheControl": "...",
            "componentCount": "...",
            "contentDisposition": "...",
            "contentEncoding": "...",
            "contentLanguage": "...",
            "contentType": "...",
            "crc32c": "...",
            "customTime": "...",
            "customerEncryption": {
              "encryptionAlgorithm": "...",
              "keySha256": "..."
            },
            "etag": "...",
            "eventBasedHold": "...",
            "generation": "...",
            "id": "...",
            "kind": "...",
            "kmsKeyName": "...",
            "md5Hash": "...",
            "mediaLink": "...",
            "metadata": "...",
            "metageneration": "...",
            "name": "...",
            "owner": {
              "entity": "...",
              "entityId": "..."
            },
            "retentionExpirationTime": "...",
            "selfLink": "...",
            "size": "...",
            "storageClass": "...",
            "temporaryHold": "...",
            "timeCreated": "...",
            "timeDeleted": "...",
            "timeStorageClassUpdated": "...",
            "updated": "..."
          },
          "kind": "...",
          "sourceObjects": {
            "generation": "...",
            "name": "...",
            "objectPreconditions": {
              "ifGenerationMatch": "..."
            }
          }
        }
      },
      "result": "composeResult"
    }
  }
]