[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-04 (世界標準時間)。"],[[["\u003cp\u003eThis API is compatible with first-generation runtimes and can be used when upgrading to corresponding second-generation runtimes, with a migration guide available for those moving to the App Engine Python 3 runtime.\u003c/p\u003e\n"],["\u003cp\u003eA bucket is a designated storage location for reading and writing files, and it is required to be specified when using the App Engine client library for Cloud Storage, although this library does not allow bucket creation.\u003c/p\u003e\n"],["\u003cp\u003eAccess control lists (ACLs) determine who can access buckets and their contents, and while the client library cannot change bucket ACLs, it can specify ACLs for newly created objects.\u003c/p\u003e\n"],["\u003cp\u003eCloud Storage does not support true subdirectories; instead, what appears to be a subdirectory is simply included in the object's filename, which affects how filtering with \u003ccode\u003elistbucket\u003c/code\u003e functions.\u003c/p\u003e\n"],["\u003cp\u003eThe App Engine client library for Cloud Storage includes an automatic request retry mechanism with exponential backoff to manage timeouts when interacting with Cloud Storage.\u003c/p\u003e\n"]]],[],null,["# Understanding Google Cloud Storage Features\n\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| python3\n|\n| /services/access). If you are updating to the App Engine Python 3 runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/python-differences) to learn about your migration options for legacy bundled services.\n\nBuckets, objects, and ACLs\n--------------------------\n\nA bucket is the storage location you read files from and write files to. You\nmust always specify a bucket when using the App Engine client library for\nCloud Storage. Your project can access multiple buckets. Note that the client\nlibrary doesn't support\n[bucket creation](/appengine/docs/legacy/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket).\n\nAccess control lists (ACLs) control access to the buckets and to the objects\ncontained in them. Your project and your App Engine app are automatically added\nto the ACL that permits bucket access when you create a bucket in your project.\n\nNote that the ACL that permits bucket access is distinct from the potentially\nmany ACLs governing the objects in that bucket. Thus, your app has read and\nwrite privileges to the bucket(s) it is activated for, but it only has full\nrights to the objects it creates in the bucket. Your app's access to objects\ncreated by other apps or persons is limited to the rights given to your app by\nthe objects' creator.\n\nIf an object is created in the bucket without an ACL explicitly defined for it,\nit uses the default object ACL assigned to the bucket by the bucket owner. If\nthe bucket owner has not specified a default object ACL, the object default is\n`public-read`, which means that anyone allowed bucket access can read the object.\n\nACLs and the client library\n---------------------------\n\nAn app using the client library cannot change the bucket ACL, but it can specify an ACL that controls access to the objects it creates. The available ACL settings are described under documentation for the [open](/appengine/docs/legacy/standard/python/googlecloudstorageclient/functions) method.\n\nModifying Cloud Storage objects\n-------------------------------\n\nOnce you create an object in a bucket, you cannot modify or append to it. Instead,\nyou must overwrite the object with a new object of the same name that contains\nyour desired changes.\n\nCloud Storage and subdirectories\n--------------------------------\n\nThe App Engine client library for Cloud Storage lets you supply subdirectory\ndelimiters when you create an object, but there are no true subdirectories in\nCloud Storage. Instead, a subdirectory in Cloud Storage is a part of the object\nfilename.\n\nFor example, you might assume that creating an object\n`somewhere/over/the/rainbow.mp3` would store the file `rainbow.mp3` in the\nsubdirectory `somewhere/over/the/`. Instead, the object name is set to\n`somewhere/over/the/rainbow.mp3`.\n\nThis concept is important to understand when using `listbucket` filtering.\n\nIf the above listing behavior is not optimal for you, `listbucket`\nhas an optional directory emulation mode. See\n[listbucket](/appengine/docs/legacy/standard/python/googlecloudstorageclient/functions#listbucket)\nfor more information.\n| **Note:** The App Engine client library for Cloud Storage provides a configurable mechanism for automatic request retries in event of timeout failures when accessing Cloud Storage. The same mechanism also provides [exponential backoff](/storage/docs/exponential-backoff) to determine an optimal processing rate. \n|\n| To change the default values for retries and backoff, use the [RetryParams](/appengine/docs/legacy/standard/python/googlecloudstorageclient/retryparams_class)\n\nWhat's next\n-----------\n\n- Visit the [API Reference documentation](/appengine/docs/legacy/standard/python/googlecloudstorageclient/functions).\n- Learn how to [set up Cloud Storage](/appengine/docs/legacy/standard/python/googlecloudstorageclient/setting-up-cloud-storage)."]]