The Client class manages interactions with Replit App Storage. This class features methods for performing operations on objects in a bucket.To import the class from the replit.object_storage package, add the following line to your Python code:
from replit.object_storage import Client
Use the following code to create a Client instance that interacts with Replit App Storage:
client = Client()
If your app uses multiple buckets, create one Client instance per bucket.
The init method initializes an instance of the Client class.
def __init__(bucket_id: Optional[str] = None)
Argument:
bucket_id (Optional[str]): The ID of the bucket the client manages. When omitted, the Client uses the default bucket associated with the Replit App or Deployment.
end_offset(Optional[str]) - Filter results to objects named lexicographically before end_offset. If start_offset is defined, the objects listed
have names between start_offset (inclusive) and end_offset (exclusive).
match_glob (Optional[str]) - Use a glob pattern to filter results. For example: “foo*bar” matches “footbar”, “foo baz bar”, and “foobar”.
max_results (Optional[int]) - The maximum number of results to return in the response.
prefix (Optional[str]) - Filter results to objects whose names have the specified prefix.
start_offset (Optional[str]) - Filter results to objects whose names are lexicographically equal to or after start_offset.
When end_offset is set, the objects listed have names between start_offset (inclusive) and end_offset (exclusive).
Returns:
List(Object): A list of objects matching the given query parameters.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Replit","colors":{"primary":"#FF3C00","light":"#FF3C00","dark":"#FF3C00"},"logo":{"light":"https://mintcdn.com/replit/j4of5To8jzehz0JK/logo/light.svg?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=6209cb5927b56fd1781133af05428373","dark":"https://mintcdn.com/replit/j4of5To8jzehz0JK/logo/dark.svg?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=9cbba158300d48c49d8b888e71015495","href":"/welcome"},"favicon":"https://mintcdn.com/replit/CmOMKRnamiqG44eH/favicon.ico?fit=max\u0026auto=format\u0026n=CmOMKRnamiqG44eH\u0026q=85\u0026s=c89a6df6f537373c946c7a5f0ac65475","appearance":{"default":"light"},"background":{"color":{"light":"#F6F5F4","dark":"#1E1E1F"}},"navbar":{"links":[],"primary":{"type":"button","label":"Start Building","href":"https://replit.com?ref=docs"}},"footer":{"socials":{"x":"https://x.com/replit","linkedin":"https://www.linkedin.com/company/repl-it","youtube":"https://www.youtube.com/@replit"}},"seo":{"metatags":{"og:site_name":"Replit Docs","twitter:site":"@replit","twitter:creator":"@replit","author":"Replit"},"indexing":"all"},"fonts":{"heading":{"family":"ABC Diatype Plus","weight":400,"source":"https://cdn.replit.com/dotcom/fonts/ABCDiatypePlusVariable.woff2","format":"woff2"},"body":{"family":"ABC Diatype Plus","weight":400,"source":"https://cdn.replit.com/dotcom/fonts/ABCDiatypePlusVariable.woff2","format":"woff2"}},"integrations":{"segment":{"key":"dMePKGC4BqfBivpe0Hvl8IoPpzSHgjdX"}},"contextual":{"options":["copy","view"],"display":"header"},"thumbnails":{"appearance":"light","background":"https://mintcdn.com/replit/j4of5To8jzehz0JK/thumb.png?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=a7db7f0256b2fa06810fb4d378e63cc5","fonts":{"family":"ABC Diatype Plus"}},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"welcome"},{"language":"fr","navbar":{"links":[],"primary":{"type":"button","label":"Commencer à créer","href":"https://replit.com?ref=docs"}},"href":"fr/welcome"},{"language":"pt","hidden":false,"navbar":{"links":[],"primary":{"type":"button","label":"Comece a criar","href":"https://replit.com?ref=docs"}},"href":"pt/welcome"},{"language":"ja","hidden":false,"navbar":{"links":[],"primary":{"type":"button","label":"作成を開始","href":"https://replit.com?ref=docs"}},"href":"ja/welcome"},{"language":"ko","hidden":false,"navbar":{"links":[],"primary":{"type":"button","label":"빌드 시작하기","href":"https://replit.com?ref=docs"}},"href":"ko/welcome"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"replit","hasAudioNarration":false,"actualSubdomain":"replit","customDomains":["docs.replit.com","docs.repl.it"],"gitSource":{"type":"github","owner":"replit","repo":"replit-docs","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae507fe004f8cf1ce95594e","collectionId":"793fa1ba-1353-43d1-b1fa-9544e2d58eae","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae507fe004f8cf1ce95594e"},"feedback":{"thumbs":true,"issues":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae507fe004f8cf1ce95594e","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"en","tag":"Features","count":357},{"language":"fr","tag":"Fonctionnalités","count":356},{"language":"ja","tag":"機能","count":356},{"language":"ko","tag":"기능","count":356},{"language":"pt","tag":"Funcionalidades","count":356},{"language":"en","tag":"Changelog","count":99},{"language":"fr","tag":"Journal des modifications","count":98},{"language":"ja","tag":"変更履歴","count":98},{"language":"ko","tag":"변경 내역","count":98},{"language":"pt","tag":"Registro de alterações","count":98},{"language":"en","tag":"Apps","count":41},{"language":"fr","tag":"Apps","count":41},{"language":"ja","tag":"Apps","count":41},{"language":"ko","tag":"Apps","count":41},{"language":"pt","tag":"Apps","count":41},{"language":"en","tag":"Enterprise","count":40},{"language":"fr","tag":"Entreprise","count":40},{"language":"ja","tag":"Enterprise","count":40},{"language":"ko","tag":"Enterprise","count":40},{"language":"pt","tag":"Enterprise","count":40},{"language":"en","tag":"Use cases","count":39},{"language":"fr","tag":"Use cases","count":35},{"language":"ja","tag":"Use cases","count":35},{"language":"ko","tag":"Use cases","count":35},{"language":"pt","tag":"Use cases","count":35},{"language":"en","tag":"Chats","count":25},{"language":"en","tag":"Designs","count":25},{"language":"fr","tag":"Chats","count":25},{"language":"fr","tag":"Designs","count":25},{"language":"ja","tag":"Chats","count":25},{"language":"ja","tag":"Designs","count":25},{"language":"ko","tag":"Chats","count":25},{"language":"ko","tag":"Designs","count":25},{"language":"pt","tag":"Chats","count":25},{"language":"pt","tag":"Designs","count":25},{"language":"en","tag":"Trust \u0026 Billing","count":23},{"language":"fr","tag":"Confiance et facturation","count":23},{"language":"ja","tag":"信頼と請求","count":23},{"language":"ko","tag":"신뢰 및 결제","count":23},{"language":"pt","tag":"Confiança e faturamento","count":23},{"language":"en","tag":"Web","count":22},{"language":"fr","tag":"Web","count":22},{"language":"ja","tag":"Web","count":22},{"language":"ko","tag":"Web","count":22},{"language":"pt","tag":"Web","count":22},{"language":"en","tag":"Help","count":20},{"language":"fr","tag":"Help","count":20},{"language":"ja","tag":"Help","count":20},{"language":"ko","tag":"Help","count":20},{"language":"pt","tag":"Help","count":20}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@replit.com"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","href":"/_mintlify/custom/replit/6239de1eb4bb33f5/styles.css"}],"page":{"pagePath":"features/sdks/object-storage-python-sdk","slug":"/features/sdks/object-storage-python-sdk","pageMetadata":{"title":"App Storage Python SDK","description":"Learn how to use the official Python SDK to manage files in Replit App Storage.","icon":"python","href":"/features/sdks/object-storage-python-sdk"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to use the official Python SDK to manage files in Replit App Storage.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This reference guide explains the `,_jsx(_components.code,{children:`Client`}),` class from the `,_jsx(_components.code,{children:`replit-object-storage-python`}),` package and provides code examples for its class methods.`]}),`\n`,_jsx(Heading,{level:`2`,id:`client`,children:`Client`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`Client`}),` class manages interactions with Replit App Storage. This class features methods for performing operations on objects in a bucket.`]}),`\n`,_jsxs(_components.p,{children:[`To import the class from the `,_jsx(_components.code,{children:`replit.object_storage`}),` package, add the following line to your Python code:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` replit.object_storage `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Client`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use the following code to create a `,_jsx(_components.code,{children:`Client`}),` instance that interacts with Replit App Storage:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Client()`})]}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`If your app uses multiple buckets, create one `,_jsx(_components.code,{children:`Client`}),` instance per bucket.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`__init__`,children:`__init__`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`init`}),` method initializes an instance of the Client class.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` __init__`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`bucket_id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Optional[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Argument`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`bucket_id`}),` (Optional[str]): The ID of the bucket the client manages. When omitted, the Client uses the default bucket associated with the Replit App or Deployment.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`copy`,children:`copy`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`copy`}),` method copies an object within the same bucket. If an object exists in the same location, it overwrites the original.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` copy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dest_object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_name`}),` (str) - The full path of the source object.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`dest_object_name`}),` (str) - The full path of the object destination.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Raises`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ObjectNotFoundError`}),` - Indicates the source object does not exist at the specified path.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`delete`,children:`delete`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`delete`}),` method permanently removes a file from App Storage.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` delete`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ignore_not_found`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bool`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_name`}),` (str) - The name of the object to delete.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ignore_not_found`}),` (bool) - When `,_jsx(_components.code,{children:`True`}),`, suppress the error if the object does not exist.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Raises`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ObjectNotFoundError`}),` - Indicates the object does not exist.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`download_as_bytes`,children:`download_as_bytes`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`download_as_bytes`}),` method retrieves the contents of a file as `,_jsx(_components.code,{children:`bytes`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` download_as_bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bytes`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Argument`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_name`}),` (str) - The name of the object to download.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Returns`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`bytes`}),`- The raw byte representation of the object’s contents.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Raises`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ObjectNotFoundError`}),` - Indicates the object does not exist.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`download_as_text`,children:`download_as_text`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`download_as_text`}),` method downloads the contents of a file as a `,_jsx(_components.code,{children:`str`}),` type.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` download_as_text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Argument`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_name`}),` (str) - The source object name to retrieve.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Returns`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`str: The object’s contents as a UTF-8 encoded string.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Raises`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ObjectNotFoundError`}),` - Indicates the object does not exist.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`download_to_filename`,children:`download_to_filename`}),`\n`,_jsx(_components.p,{children:`Downloads the contents of an object into a file on the local disk.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` download_to_filename`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dest_filename`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_name`}),` (str) - The name of the source object from App Storage to retrieve.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`dest_filename`}),` (str) - The destination filename on local disk.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Raises`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ObjectNotFoundError`}),` - Indicates the object does not exist.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`exists`,children:`exists`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`exists`}),` method checks if an object exists.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` exists`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bool`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Argument`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`object_name`}),` (str) - The name of the object to check for existence.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Returns`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`bool`}),`: `,_jsx(_components.code,{children:`True`}),` if the object exists, False otherwise.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`list`,children:`list`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`list`}),` method lists objects in the Bucket.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`end_offset`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Optional[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` match_glob`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Optional[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` max_results`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Optional[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`int`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` prefix`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Optional[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` start_offset`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Optional[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> List[Object]`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`end_offset`}),`(Optional[str]) - Filter results to objects named lexicographically before `,_jsx(_components.code,{children:`end_offset`}),`. If `,_jsx(_components.code,{children:`start_offset`}),` is defined, the objects listed\nhave names between `,_jsx(_components.code,{children:`start_offset`}),` (inclusive) and `,_jsx(_components.code,{children:`end_offset`}),` (exclusive).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`match_glob`}),` (Optional[str]) - Use a glob pattern to filter results. For example: “foo*bar” matches “footbar”, “foo baz bar”, and “foobar”.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`max_results`}),` (Optional[int]) - The maximum number of results to return in the response.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`prefix`}),` (Optional[str]) - Filter results to objects whose names have the specified prefix.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`start_offset`}),` (Optional[str]) - Filter results to objects whose names are lexicographically equal to or after `,_jsx(_components.code,{children:`start_offset`}),`.\nWhen `,_jsx(_components.code,{children:`end_offset`}),` is set, the objects listed have names between `,_jsx(_components.code,{children:`start_offset`}),` (inclusive) and `,_jsx(_components.code,{children:`end_offset`}),` (exclusive).`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Returns`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`List`}),`(Object): A list of objects matching the given query parameters.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`upload_from_filename`,children:`upload_from_filename`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`upload_from_filename()`}),` to upload an object from a source file on the local disk to App Storage.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` upload_from_filename`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dest_object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`src_filename`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`dest_object_name`}),`(str) - The name of the uploaded file.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`src_filename`}),`(str) - The source file to upload.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`upload_from_bytes`,children:`upload_from_bytes`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`upload_from_bytes`}),` method uploads an object from `,_jsx(_components.code,{children:`bytes`}),` data.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` upload_from_bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dest_object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`src_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`dest_object_name`}),`(str) - The name of the object to upload.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`src_data`}),`(str) - The `,_jsx(_components.code,{children:`bytes`}),` data to upload.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`upload_from_text`,children:`upload_from_text`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`upload_from_text`}),` method uploads an object from a string.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` upload_from_text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dest_object_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`src_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Union[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Arguments`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`dest_object_name`}),`(str) - The name of the object to upload.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`src_data`}),`(str)- The text data to upload.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`exception-types`,children:`Exception types`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`When interacting with Replit App Storage using the `,_jsx(_components.code,{children:`Client`}),`, any method might return one of the following errors:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`BucketNotFoundError`}),`: Indicates the configured bucket name does not match with any bucket in App Storage.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`DefaultBucketError`}),`: Indicates missing default bucket configuration.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ForbiddenError`}),`: Indicates insufficient permissions to access to the bucket.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`TooManyRequestsError`}),`: Indicates the operation is rate-limited due to excessive requests.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`UnauthorizedError`}),`: Indicates authorization restricted access to the operation.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`class-method-examples`,children:`Class method examples`}),`\n`,_jsx(_components.p,{children:`The following sections provide code examples for managing your objects using the Replit App Storage SDK.`}),`\n`,_jsx(Heading,{level:`3`,id:`retrieve-a-file-as-text`,children:`Retrieve a file as text`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.download_as_text(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`retrieve-raw-bytes-of-a-file`,children:`Retrieve raw bytes of a file`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.download_as_bytes(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`download-a-file-to-the-local-filesystem`,children:`Download a file to the local filesystem`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.download_to_filename(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, dest_filename)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`list-objects-in-the-bucket`,children:`List objects in the bucket`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.list()`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`upload-a-file-from-text`,children:`Upload a file from text`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.upload_from_text(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, data)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`upload-a-file-as-bytes`,children:`Upload a file as bytes`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.upload_from_bytes(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, data)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`upload-a-objects-from-the-filesystem`,children:`Upload a objects from the filesystem`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.upload_from_filename(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, src_filename)`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`delete-an-object-from-the-bucket`,children:`Delete an object from the bucket`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.delete(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"file.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"App Storage Python SDK","description":"Learn how to use the official Python SDK to manage files in Replit App Storage.","icon":"python","href":"/features/sdks/object-storage-python-sdk"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Client","slug":"client","depth":2,"children":[{"title":"__init__","slug":"__init__","depth":3,"children":[]},{"title":"copy","slug":"copy","depth":3,"children":[]},{"title":"delete","slug":"delete","depth":3,"children":[]},{"title":"download_as_bytes","slug":"download_as_bytes","depth":3,"children":[]},{"title":"download_as_text","slug":"download_as_text","depth":3,"children":[]},{"title":"download_to_filename","slug":"download_to_filename","depth":3,"children":[]},{"title":"exists","slug":"exists","depth":3,"children":[]},{"title":"list","slug":"list","depth":3,"children":[]},{"title":"upload_from_filename","slug":"upload_from_filename","depth":3,"children":[]},{"title":"upload_from_bytes","slug":"upload_from_bytes","depth":3,"children":[]},{"title":"upload_from_text","slug":"upload_from_text","depth":3,"children":[]},{"title":"Exception types","slug":"exception-types","depth":3,"children":[]}]},{"title":"Class method examples","slug":"class-method-examples","depth":2,"children":[{"title":"Retrieve a file as text","slug":"retrieve-a-file-as-text","depth":3,"children":[]},{"title":"Retrieve raw bytes of a file","slug":"retrieve-raw-bytes-of-a-file","depth":3,"children":[]},{"title":"Download a file to the local filesystem","slug":"download-a-file-to-the-local-filesystem","depth":3,"children":[]},{"title":"List objects in the bucket","slug":"list-objects-in-the-bucket","depth":3,"children":[]},{"title":"Upload a file from text","slug":"upload-a-file-from-text","depth":3,"children":[]},{"title":"Upload a file as bytes","slug":"upload-a-file-as-bytes","depth":3,"children":[]},{"title":"Upload a objects from the filesystem","slug":"upload-a-objects-from-the-filesystem","depth":3,"children":[]},{"title":"Delete an object from the bucket","slug":"delete-an-object-from-the-bucket","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"replit","siteName":"Replit","title":"App Storage Python SDK - Replit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/features/sdks/object-storage-python-sdk","matchLevel":0},"fr":{"href":"/fr/features/sdks/object-storage-python-sdk","matchLevel":1},"pt":{"href":"/pt/features/sdks/object-storage-python-sdk","matchLevel":1},"ja":{"href":"/ja/features/sdks/object-storage-python-sdk","matchLevel":1},"ko":{"href":"/ko/features/sdks/object-storage-python-sdk","matchLevel":1}}},"lastModified":"2026-07-13T19:42:31.139Z","originalFileLocation":"features/sdks/object-storage-python-sdk.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn how to use the official Python SDK to manage files in Replit App Storage.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Replit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"App Storage Python SDK - Replit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to use the official Python SDK to manage files in Replit App Storage.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Replit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.replit.com/features/sdks/object-storage-python-sdk\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://replit.mintlify.app/_mintlify/api/og/v2?division=App+Storage\u0026amp;title=App+Storage+Python+SDK\u0026amp;description=Learn+how+to+use+the+official+Python+SDK+to+manage+files+in+Replit+App+Storage.\u0026amp;theme=c1942b8f9ebd95f98c5c7c23\u0026amp;signature=dd09e8d0f804cf13587d067636ba9d13d830f5349220ca6eeef803fbb95c7db6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"App Storage Python SDK - Replit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to use the official Python SDK to manage files in Replit App Storage.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://replit.mintlify.app/_mintlify/api/og/v2?division=App+Storage\u0026amp;title=App+Storage+Python+SDK\u0026amp;description=Learn+how+to+use+the+official+Python+SDK+to+manage+files+in+Replit+App+Storage.\u0026amp;theme=c1942b8f9ebd95f98c5c7c23\u0026amp;signature=dd09e8d0f804cf13587d067636ba9d13d830f5349220ca6eeef803fbb95c7db6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Replit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF3C00\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@replit\">\u003cmeta data-mint-head name=\"author\" content=\"Replit\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.replit.com/features/sdks/object-storage-python-sdk\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/sdks/object-storage-python-sdk.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.replit.com/features/sdks/object-storage-python-sdk\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.replit.com/fr/features/sdks/object-storage-python-sdk\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.replit.com/pt/features/sdks/object-storage-python-sdk\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.replit.com/ja/features/sdks/object-storage-python-sdk\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.replit.com/ko/features/sdks/object-storage-python-sdk\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.replit.com/features/sdks/object-storage-python-sdk\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.replit.com/#organization\",\"name\":\"Replit\",\"url\":\"https://docs.replit.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/replit/j4of5To8jzehz0JK/logo/light.svg?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=6209cb5927b56fd1781133af05428373\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.replit.com#website\",\"name\":\"Replit\",\"url\":\"https://docs.replit.com\",\"publisher\":{\"@id\":\"https://docs.replit.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk#webpage\",\"url\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk\",\"name\":\"App Storage Python SDK\",\"description\":\"Learn how to use the official Python SDK to manage files in Replit App Storage.\",\"dateModified\":\"2026-07-13T19:42:31.139Z\",\"isPartOf\":{\"@id\":\"https://docs.replit.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"App Storage\",\"item\":\"https://docs.replit.com/features/data-and-storage/object-storage\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"App Storage Python SDK\",\"item\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk#article\",\"headline\":\"App Storage Python SDK\",\"name\":\"App Storage Python SDK\",\"description\":\"Learn how to use the official Python SDK to manage files in Replit App Storage.\",\"url\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk\",\"mainEntityOfPage\":{\"@id\":\"https://docs.replit.com/features/sdks/object-storage-python-sdk#webpage\"},\"dateModified\":\"2026-07-13T19:42:31.139Z\",\"publisher\":{\"@id\":\"https://docs.replit.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.replit.com#website\"}}]}\u003c/script>","siteName":"Replit","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/welcome"}]},{"tab":"Chats","pages":[{"title":"Chats","href":"/chat/overview"}]},{"tab":"Apps","dropdowns":[{"dropdown":"Web","icon":"globe","pages":[{"group":"Quickstarts","pages":[{"title":"Build your first app","sidebarTitle":"Build your first app","icon":"rocket","href":"/build/your-first-app"},{"title":"Build and publish from a template","sidebarTitle":"Build from a template","icon":"palette","href":"/build/build-and-publish-from-template"},{"title":"Build with Free Mode","sidebarTitle":"Build with Free Mode","icon":"seedling","href":"/build/build-with-free-mode"},{"title":"Publish your app","sidebarTitle":"Publish your app","icon":"cloud-arrow-up","href":"/build/publish-your-app"}]},{"group":"Build paths","pages":[{"title":"Prototype a product idea","sidebarTitle":"Prototype an idea","icon":"lightbulb","href":"/build/prototype-an-idea"},{"title":"Launch a landing page","sidebarTitle":"Launch a landing page","icon":"rectangle-list","href":"/build/landing-page"},{"title":"Build a Shopify storefront","sidebarTitle":"Build a Shopify storefront","icon":"bag-shopping","href":"/build/ecommerce-store"},{"title":"Create a dashboard from data","sidebarTitle":"Create a dashboard","icon":"chart-simple","href":"/build/dashboard"},{"title":"Build a mobile app","sidebarTitle":"Build a mobile app","icon":"mobile-screen","href":"/build/mobile-app"}]},{"group":"Grow your app","pages":[{"title":"Add login","sidebarTitle":"Add login","icon":"user-lock","href":"/build/add-login"},{"title":"Add a database","sidebarTitle":"Add a database","icon":"database","href":"/build/add-database"},{"title":"Add integrations","sidebarTitle":"Add integrations","icon":"plug","href":"/build/add-integrations"},{"title":"Add a custom domain","sidebarTitle":"Add a custom domain","icon":"globe","href":"/build/add-custom-domain"}]},{"group":"Publish and operate","pages":[{"title":"Purchase a domain","sidebarTitle":"Purchase a domain","icon":"cart-shopping","href":"/build/domain-purchasing"},{"title":"Enable Feedback Widget","sidebarTitle":"Enable Feedback Widget","icon":"comment","href":"/build/enable-feedback"},{"title":"Improve your app's SEO","sidebarTitle":"Improve SEO","icon":"magnifying-glass-chart","href":"/build/improve-seo"},{"title":"Troubleshoot publishing","icon":"triangle-exclamation","href":"/build/troubleshooting"}]},{"group":"Connect \u0026 integrate","pages":[{"title":"Use Agent Skills","sidebarTitle":"Use Agent Skills","icon":"puzzle-piece","href":"/build/use-agent-skills"},{"title":"Connect via MCP","sidebarTitle":"Connect via MCP","icon":"server","href":"/build/connect-via-mcp"}]},{"group":"Collaborate","pages":[{"title":"Invite teammates","sidebarTitle":"Invite teammates","icon":"user-plus","href":"/build/invite-teammates"},{"title":"Create a team workspace","sidebarTitle":"Create a team workspace","icon":"users-rectangle","href":"/build/create-a-team-workspace"}]},{"group":"Import","pages":[{"title":"Import from a provider","sidebarTitle":"Import from a provider","icon":"file-import","href":"/build/import-from-providers"}]}]},{"dropdown":"Mobile","icon":"mobile","groups":[{"group":"Quickstarts","pages":[{"title":"Start your first mobile app","sidebarTitle":"Start your mobile app","icon":"wand-magic-sparkles","href":"/build/mobile-first-app"},{"title":"Preview and test on your phone","sidebarTitle":"Test with Expo Go","icon":"mobile","href":"/build/mobile-preview-testing"}]},{"group":"Publish for iOS","pages":[{"title":"Set up your Apple Developer account","sidebarTitle":"Set up your account","icon":"apple","href":"/build/mobile-apple-account"},{"title":"Upload your app to App Store Connect","sidebarTitle":"Upload your app","icon":"cloud-arrow-up","href":"/build/mobile-upload-ios"},{"title":"Beta test with TestFlight","sidebarTitle":"Test on TestFlight","icon":"flask","href":"/build/mobile-testflight"},{"title":"Submit to the App Store","sidebarTitle":"Submit for App Store","icon":"paper-plane","href":"/build/mobile-publish-ios"}]},{"group":"Add features and grow your app","pages":[{"title":"Add login","sidebarTitle":"Add login","icon":"right-to-bracket","href":"/build/mobile-login"},{"title":"Add payments with RevenueCat","sidebarTitle":"Add payments","icon":"credit-card","href":"/build/mobile-payments"},{"title":"Store images in your mobile app","sidebarTitle":"Save player images","icon":"image","href":"/build/mobile-store-images"},{"title":"Add haptics","sidebarTitle":"Add haptics","icon":"wave-square","href":"/build/mobile-haptics"},{"title":"Use iOS native components","sidebarTitle":"Use native UI","icon":"apple","href":"/build/mobile-native-components"},{"title":"Use the camera","sidebarTitle":"Add camera","icon":"camera","href":"/build/mobile-camera"},{"title":"Access contacts","sidebarTitle":"Add contacts","icon":"address-book","href":"/build/mobile-contacts"},{"title":"Send push notifications","sidebarTitle":"Send notifications","icon":"bell","href":"/build/mobile-push-notifications"},{"title":"Collect reviews and ratings","sidebarTitle":"Collect reviews","icon":"star","href":"/build/mobile-collect-reviews"}]},{"group":"Design","pages":[{"title":"Design your app","sidebarTitle":"Design your app","icon":"palette","href":"/build/mobile-design"},{"title":"Generate an app icon","sidebarTitle":"Generate app icon","icon":"image","href":"/build/mobile-app-icon"},{"title":"Generate App Store screenshots","sidebarTitle":"Generate store assets","icon":"images","href":"/build/mobile-store-screenshots"}]},{"group":"Collaborate","pages":[{"title":"Build PixelGames with a team","sidebarTitle":"Invite your team","icon":"users","href":"/build/mobile-invite-team"}]}]}]},{"tab":"Code","pages":[{"title":"Code","href":"/build/code/code-with-replit"}]},{"tab":"Designs","pages":[{"title":"Designs","href":"/design/what-is-replit-design"}]},{"tab":"Use cases","pages":[{"title":"Use cases","href":"/use-cases"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/learn/foundations/what-is-an-app"}]},{"tab":"Features","anchors":[{"anchor":"Features","icon":"book-open","groups":[{"group":"Workspace \u0026 Admin","pages":[{"title":"Workspaces","sidebarTitle":"Workspaces","icon":"building","href":"/features/collaboration/workspaces"},{"title":"Personal \u0026 Team Workspaces","sidebarTitle":"Personal \u0026 Team Workspaces","icon":"users","href":"/features/collaboration/team-workspaces"},{"title":"Workspace geography","sidebarTitle":"Workspace geography","icon":"globe","href":"/features/collaboration/workspace-geography"},{"title":"Workspace Settings","sidebarTitle":"Workspace Settings","icon":"sliders","href":"/features/collaboration/workspace-settings"},{"title":"Enterprise model controls","sidebarTitle":"Model controls","icon":"microchip","href":"/features/collaboration/enterprise-model-controls"},{"title":"Admin API","sidebarTitle":"Admin API","icon":"key","href":"/teams/admin-api"}]},{"group":"Chats and routines","pages":[{"title":"Chats","sidebarTitle":"Chats","icon":"comments","href":"/features/chats-and-routines/chats"},{"title":"Routines","sidebarTitle":"Routines","icon":"arrows-rotate","href":"/features/chats-and-routines/routines"},{"title":"Sharing chats and assets","sidebarTitle":"Sharing chats and assets","icon":"share-nodes","href":"/features/chats-and-routines/sharing"}]},{"group":"Projects \u0026 artifacts","pages":[{"title":"What's a Project?","sidebarTitle":"Projects","icon":"diagram-project","href":"/features/projects-and-artifacts/projects"},{"title":"What's an Artifact?","sidebarTitle":"Artifacts","icon":"layer-group","href":"/features/projects-and-artifacts/artifacts"},{"title":"Multiple Artifacts vs. Separate Projects","sidebarTitle":"Artifacts vs. Projects","icon":"code-compare","href":"/features/projects-and-artifacts/multiple-artifacts-vs-projects"},{"title":"Updating older projects for multiple artifact support","sidebarTitle":"Update older projects","icon":"rotate","href":"/features/projects-and-artifacts/updating-projects-for-multiple-artifacts"},{"title":"Remix an app","sidebarTitle":"Remixing","icon":"clone","href":"/features/projects-and-artifacts/remix-an-app"}]},{"group":"Project editor","pages":[{"title":"Editor \u0026 Tools","sidebarTitle":"Tools","icon":"toolbox","href":"/features/editor/editor-and-tools"},{"title":"Preview","icon":"eye","href":"/features/editor/preview"},{"title":"Keyboard Shortcuts","icon":"keyboard","href":"/features/editor/keyboard-shortcuts"},{"title":"User Settings","icon":"user-gear","href":"/features/editor/user-settings"}]},{"group":"Agent","pages":[{"title":"Replit Agent","sidebarTitle":"Replit Agent","icon":"robot","href":"/features/agent/overview"},{"title":"Plan Mode","sidebarTitle":"Plan Mode","icon":"clipboard-list","href":"/features/agent/plan-mode"},{"title":"Agent Modes","sidebarTitle":"Agent Modes","icon":"bolt","href":"/features/agent/agent-modes"},{"title":"Model selector","sidebarTitle":"Model selector","icon":"microchip","href":"/features/agent/model-selector"},{"title":"App Testing","sidebarTitle":"App Testing","icon":"vial","href":"/features/agent/app-testing"},{"title":"General Agent","sidebarTitle":"General Agent","icon":"compass","href":"/features/agent/general-agent"}]},{"group":"Publishing","pages":[{"title":"Publishing","sidebarTitle":"Overview","icon":"cloud-arrow-up","href":"/features/publishing/overview"},{"title":"After you publish","sidebarTitle":"After you publish","icon":"rocket","href":"/features/publishing/after-you-publish"},{"title":"Custom Domains","icon":"at","href":"/features/publishing/custom-domains"},{"title":"Who can access your app","sidebarTitle":"Access","icon":"user-shield","href":"/features/publishing/private-deployments"},{"title":"Feedback widget","sidebarTitle":"Feedback widget","icon":"comment-dots","href":"/features/publishing/feedback-widget"},{"title":"Deployment types","sidebarTitle":"Deployment types","icon":"server","href":"/features/publishing/deployment-types"},{"title":"Machine configuration","sidebarTitle":"Machines","icon":"microchip","href":"/features/publishing/machine-configuration"},{"title":"Project geography","sidebarTitle":"Project geography","icon":"globe","href":"/features/publishing/project-geography"}]},{"group":"Monitoring","pages":[{"title":"Monitoring your app","sidebarTitle":"Monitor your app","icon":"chart-line","href":"/features/publishing/monitoring-a-deployment"},{"title":"Monitoring Agent","sidebarTitle":"Monitoring Agent","icon":"robot","href":"/features/publishing/monitoring-agent"}]},{"group":"Database","pages":[{"title":"Database","sidebarTitle":"Overview","icon":"table","href":"/features/data-and-storage/sql-database"},{"title":"Development and production databases","sidebarTitle":"Development and production","icon":"server","href":"/features/data-and-storage/development-and-production"},{"title":"Work with your data","sidebarTitle":"Work with your data","icon":"table-cells","href":"/features/data-and-storage/work-with-your-data"},{"title":"Monitor your database","sidebarTitle":"Monitoring","icon":"chart-line","href":"/features/data-and-storage/monitor-your-database"},{"title":"Connection details","sidebarTitle":"Connection details","icon":"plug","href":"/features/data-and-storage/connection-details"},{"title":"Data recovery","sidebarTitle":"Data recovery","icon":"clock-rotate-left","href":"/features/data-and-storage/data-recovery"}]},{"group":"Users \u0026 Auth","pages":[{"title":"Users \u0026 Auth","sidebarTitle":"Overview","icon":"users","href":"/features/auth-and-identity/overview"},{"title":"Replit Auth","sidebarTitle":"Replit Auth","icon":"lock","href":"/features/auth-and-identity/authentication"},{"title":"Clerk Auth","sidebarTitle":"Clerk Auth","icon":"user-lock","href":"/features/auth-and-identity/clerk-auth"},{"title":"Add SSO to your app (Clerk)","sidebarTitle":"Add SSO to your app","icon":"key","href":"/features/auth-and-identity/single-sign-on"},{"title":"Migrate from Replit Auth to Clerk","sidebarTitle":"Migrate to Clerk","icon":"right-left","href":"/features/auth-and-identity/migrate-auth-to-clerk"},{"title":"Sign-in providers","sidebarTitle":"Sign-in providers","icon":"right-to-bracket","href":"/features/auth-and-identity/sign-in-providers"},{"title":"Plan a custom auth migration","sidebarTitle":"Custom auth migration","icon":"right-left","href":"/features/auth-and-identity/custom-auth-migration"}]},{"group":"Security Center","pages":[{"title":"Project Security Center","sidebarTitle":"Project Security Center","icon":"shield-virus","href":"/features/security/project-security-center"},{"title":"Security scan levels","sidebarTitle":"Security scan levels","icon":"layer-group","href":"/features/security/security-scan-levels"},{"title":"Agent security scans","sidebarTitle":"Agent security scans","icon":"shield-check","href":"/features/security/agent-security-scans"},{"title":"Black-box pen tests","sidebarTitle":"Black-box pen tests","icon":"user-secret","href":"/features/security/black-box-pen-tests"},{"title":"Workspace Security Center","sidebarTitle":"Workspace Security Center","icon":"users-rectangle","href":"/features/security/workspace-security-center"},{"title":"Package Firewall","sidebarTitle":"Package Firewall","icon":"shield-check","href":"/features/security/package-firewall"},{"title":"Set up Tunnels","sidebarTitle":"Tunnels","icon":"network-wired","href":"/features/security/tunnels"},{"title":"Security","sidebarTitle":"Security","icon":"shield-halved","href":"/features/security/overview"},{"title":"Geography","sidebarTitle":"Geography","icon":"globe","href":"/features/security/geography"},{"title":"Security concepts","sidebarTitle":"Concepts","icon":"book","href":"/features/security/concepts"},{"title":"Replit shared responsibility model","sidebarTitle":"Shared responsibility model","icon":"scale-balanced","href":"/features/security/shared-responsibility-model"}]},{"group":"App Storage","pages":[{"title":"App Storage","sidebarTitle":"Overview","description":"Learn how to use App Storage to host and manage file uploads like images, videos, and documents.","icon":"box-archive","href":"/features/data-and-storage/object-storage"},{"title":"App Storage Python SDK","icon":"python","href":"/features/sdks/object-storage-python-sdk"},{"title":"App Storage JavaScript SDK","description":"Learn how to use the official JavaScript SDK to manage files in Replit App Storage.","icon":"js","href":"/features/sdks/object-storage-javascript-sdk"}]},{"group":"Growth","pages":[{"title":"Project Analytics","sidebarTitle":"Project Analytics","icon":"chart-line-up","href":"/features/publishing/project-analytics"},{"title":"SEO Rating","sidebarTitle":"SEO Rating","icon":"magnifying-glass-chart","href":"/features/publishing/seo-rating"},{"title":"SEO Agent","sidebarTitle":"SEO Agent","icon":"robot","href":"/features/publishing/seo-agent"}]},{"group":"Integrations","pages":[{"title":"Agent Integrations","sidebarTitle":"Connectors","icon":"plug","href":"/features/integrations/overview"},{"title":"Custom connectors","sidebarTitle":"Custom connectors","icon":"plug","href":"/features/integrations/custom-connectors"},{"title":"Replit AI Integrations","sidebarTitle":"AI","icon":"sparkles","href":"/features/integrations/replit-ai-integrations"},{"title":"Connect Plaid","sidebarTitle":"Plaid","icon":"building-columns","href":"/features/integrations/plaid-connector"},{"title":"Connect Shopify","sidebarTitle":"Shopify","icon":"bag-shopping","href":"/features/integrations/shopify"},{"title":"Open in Replit","sidebarTitle":"Open in Replit","icon":"arrow-up-right-from-square","href":"/features/integrations/open-in-replit"}]},{"group":"MCP \u0026 API","pages":[{"title":"MCP list","sidebarTitle":"MCP list","icon":"server","href":"/features/mcp/overview"},{"title":"Replit MCP Server","sidebarTitle":"Replit MCP server","icon":"server","href":"/platforms/mcp-server"}]},{"group":"Git","pages":[{"title":"Using the Git pane","icon":"code-fork","href":"/features/workspace-tools/git-interface"},{"title":"Checkpoints and Rollbacks","sidebarTitle":"Checkpoints","icon":"bookmark","href":"/features/version-control/checkpoints-and-rollbacks"},{"title":"File History","icon":"clock-rotate-left","href":"/features/version-control/file-history"},{"title":"Git disaster recovery","sidebarTitle":"Disaster Recovery","icon":"life-ring","href":"/features/version-control/disaster-recovery"}]},{"group":"Secrets","pages":[{"title":"Secrets","icon":"key","href":"/core-concepts/project-editor/app-setup/secrets"}]},{"group":"Agent Skills","pages":[{"title":"Agent Skills","sidebarTitle":"Agent Skills","icon":"puzzle-piece","href":"/features/agent/skills"},{"title":"Agent Customization","sidebarTitle":"Agent Customization","icon":"sliders","href":"/features/agent/agent-customization"},{"title":"Skills directory","sidebarTitle":"Skills directory","icon":"grid","href":"/features/agent/skills-directory"}]},{"group":"Workspace tools","pages":[{"title":"Shell","icon":"square-terminal","href":"/features/workspace-tools/shell"},{"title":"Console","icon":"terminal","href":"/features/workspace-tools/console"},{"title":"SSH","icon":"network-wired","href":"/features/workspace-tools/ssh"},{"title":"Workflows","icon":"play","href":"/features/workspace-tools/workflows"},{"title":"The Graphical Command Line Interface","sidebarTitle":"CLUI","icon":"command","href":"/features/workspace-tools/clui-graphical-cli"}]},{"group":"Agent capabilities","pages":[{"title":"Charts","sidebarTitle":"Charts","icon":"chart-line","href":"/features/agent/charts"},{"title":"Image Generation","sidebarTitle":"Image Generation","icon":"image","href":"/features/agent/image-generation"},{"title":"Audio Generation","sidebarTitle":"Audio Generation","icon":"music","href":"/features/agent/audio-generation"},{"title":"Voice Mode","sidebarTitle":"Voice Mode","icon":"microphone","href":"/features/agent/voice-mode"},{"title":"Steer or queue follow-up messages","sidebarTitle":"Steer or queue messages","icon":"comments","href":"/features/agent/steer-and-queue-messages"},{"title":"Web Search","icon":"magnifying-glass","href":"/features/agent/web-search"}]},{"group":"Tasks","pages":[{"title":"Task lifecycle","sidebarTitle":"Task lifecycle","icon":"arrows-spin","href":"/features/agent/task-lifecycle"},{"title":"Task board","sidebarTitle":"Task board","icon":"table-columns","href":"/features/agent/task-board"},{"title":"Follow-up tasks","sidebarTitle":"Follow-up tasks","icon":"arrow-turn-right","href":"/features/agent/follow-up-tasks"}]},{"group":"Artifact types","pages":[{"title":"Web Apps","sidebarTitle":"Web Apps","icon":"globe","href":"/features/artifact-types/web-apps"},{"title":"Native Mobile Apps","icon":"mobile-screen","href":"/features/artifact-types/building-mobile-apps"},{"title":"Data Visualization","sidebarTitle":"Data Visualization","icon":"chart-column","href":"/features/artifact-types/data-apps"},{"title":"Slide Decks","sidebarTitle":"Slide Decks","icon":"presentation-screen","href":"/features/artifact-types/slide-decks"},{"title":"Animated Videos","sidebarTitle":"Animated Videos","icon":"film","href":"/features/artifact-types/animated-videos"}]},{"group":"Monetization","pages":[{"title":"Monetization","sidebarTitle":"Overview","icon":"sack-dollar","href":"/features/monetization/overview"},{"title":"Whop Payments Integration","sidebarTitle":"Whop Payments","icon":"store","href":"/features/monetization/whop-payments"},{"title":"Stripe Payments Integration","sidebarTitle":"Stripe Payments","icon":"credit-card","href":"/features/monetization/stripe-payments"},{"title":"RevenueCat Subscriptions","sidebarTitle":"RevenueCat","icon":"repeat","href":"/features/monetization/revenuecat-subscriptions"}]},{"group":"Project setup","pages":[{"title":"Replit App Configuration","sidebarTitle":"Advanced Configuration","icon":"gear","href":"/features/project-setup/configuration"},{"title":"replit.md","icon":"file-lines","href":"/features/project-setup/replit-dot-md"},{"title":"Dependency Management","sidebarTitle":"Dependencies","icon":"boxes-packing","href":"/features/project-setup/dependency-management"},{"title":"Ports","icon":"plug","href":"/features/project-setup/ports"},{"title":"Developer Frameworks","icon":"cubes","href":"/features/project-setup/developer-frameworks"}]},{"group":"Platforms","pages":[{"title":"Replit in ChatGPT","sidebarTitle":"ChatGPT","icon":"comments","href":"/features/platforms/chatgpt"},{"title":"Replit in Claude","sidebarTitle":"Claude","icon":"plug","href":"/features/platforms/claude"},{"title":"Replit on Slack","sidebarTitle":"Slack","icon":"slack","href":"/features/platforms/slack"},{"title":"Replit Mobile App","sidebarTitle":"Mobile App","icon":"mobile-screen-button","href":"/features/platforms/mobile-app"},{"title":"Replit Desktop App","sidebarTitle":"Desktop App","icon":"desktop","href":"/features/platforms/desktop-app"}]},{"group":"Troubleshooting","pages":[{"title":"Mobile app troubleshooting","sidebarTitle":"Mobile app","icon":"mobile-screen","href":"/features/troubleshooting/mobile-app"}]},{"group":"Additional Resources","pages":[{"title":"FAQ","icon":"circle-question","href":"/features/additional-resources/faq"},{"title":"Replit Cheat Sheet","sidebarTitle":"Cheat Sheet","icon":"book-open","href":"/features/additional-resources/cheat-sheet"},{"title":"Static Deployment Configuration","sidebarTitle":"Advanced static","icon":"sliders","href":"/features/deployment-customization/static-deployments-advanced"},{"title":"External Access Tokens","sidebarTitle":"Access tokens","icon":"id-badge","href":"/features/deployment-customization/external-access-tokens"},{"title":"Fix a published app using a shared database","sidebarTitle":"Migrate shared data","icon":"arrow-right-arrow-left","href":"/features/data-and-storage/shared-database-migration"}]}]},{"anchor":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/updates/2026/10/30/changelog"}]},{"anchor":"Help","icon":"circle-question","pages":[{"title":"Help","href":"/help/overview"}]}]},{"tab":"Trust \u0026 Billing","pages":[{"title":"Trust \u0026 Billing","href":"/category/billing"}]},{"tab":"Enterprise","pages":[{"title":"Enterprise","href":"/teams/welcome"}]}]},{"language":"fr","navbar":{"links":[],"primary":{"type":"button","label":"Commencer à créer","href":"https://replit.com?ref=docs"}},"pages":[{"title":"fr","href":"/fr/features/sdks/object-storage-python-sdk"}]},{"language":"pt","navbar":{"links":[],"primary":{"type":"button","label":"Comece a criar","href":"https://replit.com?ref=docs"}},"hidden":false,"pages":[{"title":"pt","href":"/pt/features/sdks/object-storage-python-sdk"}]},{"language":"ja","navbar":{"links":[],"primary":{"type":"button","label":"作成を開始","href":"https://replit.com?ref=docs"}},"hidden":false,"pages":[{"title":"ja","href":"/ja/features/sdks/object-storage-python-sdk"}]},{"language":"ko","navbar":{"links":[],"primary":{"type":"button","label":"빌드 시작하기","href":"https://replit.com?ref=docs"}},"hidden":false,"pages":[{"title":"ko","href":"/ko/features/sdks/object-storage-python-sdk"}]}]},"basePath":"","title":"App Storage Python SDK - Replit","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}