Use the destination bucket's default object ACLS, if applicable.
Preserve
Preserve the object's original ACLs. This requires the service account
to have storage.objects.getIamPolicy permission for the source object.
Uniform bucket-level
access
must not be enabled on either the source or destination buckets.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe content provides reference documentation for the \u003ccode\u003eMetadataOptions.Types.Acl\u003c/code\u003e enum within the Google Cloud Storage Transfer v1 API, detailing how to handle Cloud Storage object ACLs.\u003c/p\u003e\n"],["\u003cp\u003eThere are multiple documented versions, ranging from the latest version 2.8.0 to version 1.0.0, all within the \u003ccode\u003eGoogle.Cloud.StorageTransfer.V1\u003c/code\u003e namespace.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMetadataOptions.Types.Acl\u003c/code\u003e enum offers three options for managing ACLs: \u003ccode\u003eDestinationBucketDefault\u003c/code\u003e, which uses the destination bucket's default ACLs; \u003ccode\u003ePreserve\u003c/code\u003e, which maintains the original object ACLs; and \u003ccode\u003eUnspecified\u003c/code\u003e, which indicates unspecified ACL behavior.\u003c/p\u003e\n"],["\u003cp\u003eThe Preserve field requires certain permissions for the service account, and has limitations on usage depending on if Uniform bucket-level access is enabled.\u003c/p\u003e\n"]]],[],null,[]]