Learn how to use the official Python SDK to manage files in Replit App Storage.
This reference guide explains the Client class from the replit-object-storage-python package and provides code examples for its class methods.
Client
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.
__init__
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.
copy
The copy method copies an object within the same bucket. If an object exists in the same location, it overwrites the original.
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.
upload_from_filename
Use upload_from_filename() to upload an object from a source file on the local disk to App Storage.
{"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":""},"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":"6af74ffb75f3e5c02082c3f7","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"en","tag":"Features","count":367},{"language":"fr","tag":"Fonctionnalités","count":366},{"language":"ja","tag":"機能","count":366},{"language":"ko","tag":"기능","count":366},{"language":"pt","tag":"Funcionalidades","count":366},{"language":"en","tag":"Changelog","count":101},{"language":"fr","tag":"Journal des modifications","count":100},{"language":"ja","tag":"変更履歴","count":100},{"language":"ko","tag":"변경 내역","count":100},{"language":"pt","tag":"Registro de alterações","count":100},{"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":39},{"language":"ja","tag":"Use cases","count":39},{"language":"ko","tag":"Use cases","count":39},{"language":"pt","tag":"Use cases","count":39},{"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":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"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},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","href":"/_mintlify/custom/replit/d427c49142834eef/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.site/_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=3d900b3257a00c38c6803774\u0026amp;signature=c4f24f14ee2bcd82dec6b7f5402326c8e20762034d71ae3c7da58eb7d4892389\">\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.site/_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=3d900b3257a00c38c6803774\u0026amp;signature=c4f24f14ee2bcd82dec6b7f5402326c8e20762034d71ae3c7da58eb7d4892389\">\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>","agentPointerHref":"/features/sdks/object-storage-python-sdk.md","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"},{"title":"Performance Agent","sidebarTitle":"Performance Agent","icon":"gauge-high","href":"/features/publishing/performance-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":"How Publish updates your production database","sidebarTitle":"Publish database changes","icon":"database","href":"/features/data-and-storage/publish-database-changes"},{"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"},{"title":"Buy what your business needs with Replit","sidebarTitle":"Agentic commerce","icon":"bag-shopping","href":"/features/agent/agentic-commerce"},{"title":"Reach customers with Google Ads","sidebarTitle":"Agentic Ads","icon":"bullhorn","href":"/features/agent/agentic-ads"}]},{"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/11/13/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_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":[],"chunks":[]}