First we have to add a declarative S3 configuration in Python.
s3_config.py
import featureform as ffs3 = ff.register_s3( name="s3-quickstart", credentials=ff.AWSStaticCredentials(...), bucket_name="bucket_name", bucket_region=<bucket_region>, path="path/to/store/featureform_files/in/", description="An s3 store provider to store offline")client.apply()
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Featureform","colors":{"primary":"#F7195C","light":"#FF487F","dark":"#F7195C"},"favicon":"/favicon.svg","logo":{"light":"https://mintcdn.com/featureform/ge8yI-LRr4sD_ybq/logo.svg?fit=max\u0026auto=format\u0026n=ge8yI-LRr4sD_ybq\u0026q=85\u0026s=5c92640b0314272fdcf5f4061e3d2ae9","dark":"https://mintcdn.com/featureform/ge8yI-LRr4sD_ybq/logo.svg?fit=max\u0026auto=format\u0026n=ge8yI-LRr4sD_ybq\u0026q=85\u0026s=5c92640b0314272fdcf5f4061e3d2ae9"},"navbar":{"links":[{"label":"Schedule a Demo","href":"https://calendly.com/d/y5h-jpf-gj7/featureform-intro-call-intro-call"}],"primary":{"type":"button","label":"Quickstart","href":"https://docs.featureform.com/"}},"footer":{"socials":{"twitter":"https://twitter.com/FeatureformML","linkedin":"https://www.linkedin.com/company/featureform-ml"}},"navigation":{"global":{"tabs":[{"tab":"Python SDK","href":"https://sdk.featureform.com/"}],"anchors":[{"anchor":"Community","href":"https://join.slack.com/t/featureform-community/shared_invite/zt-xhqp2m4i-JOCaN1vRN2NDXSVif10aQg","icon":"slack"},{"anchor":"Github","href":"https://github.com/featureform","icon":"github"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"featureform","hasAudioNarration":false,"actualSubdomain":"featureform","customDomains":["docs.featureform.com"],"gitSource":{"type":"github","owner":"featureform","repo":"featureform","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e60d4c43fec466d7927a","collectionId":"2efa229a-a369-473e-ab0d-8a6bc8ff186b","schemaVersion":"v2"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae91d2a5d9fe27156016933:success","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Documentation","count":69},{"language":"default","tag":"Supported Infrastructure Providers","count":26},{"language":"default","tag":"Overview","count":13},{"language":"default","tag":"Concepts","count":12},{"language":"default","tag":"Using Featureform","count":10},{"language":"default","tag":"Offline Stores","count":10},{"language":"default","tag":"Featureform Resource Types","count":9},{"language":"default","tag":"Deployment","count":7},{"language":"default","tag":"Inference Stores","count":5},{"language":"default","tag":"Object and File Stores","count":5}]},"assistantConfig":{},"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},{"name":"sso-setup-deadline-banner","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"providers/aws-s3","slug":"/providers/aws-s3","pageMetadata":{"title":"S3","description":"Featureform supports [AWS S3](https://aws.amazon.com/s3/) as a [File Store](/providers/object-and-file-stores)","href":"/providers/aws-s3"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Featureform supports \", _jsx(_components.a, {\n href: \"https://aws.amazon.com/s3/\",\n children: \"AWS S3\"\n }), \" as a \", _jsx(_components.a, {\n href: \"/providers/object-and-file-stores\",\n children: \"File Store\"\n })]\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={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`configuration`,children:`Configuration`}),`\n`,_jsx(_components.p,{children:`First we have to add a declarative S3 configuration in Python.`}),`\n`,_jsx(CodeBlock,{filename:`s3_config.py`,numberOfLines:`12`,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:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` featureform `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ff`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`s3 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ff.register_s3(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"s3-quickstart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` credentials`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ff.AWSStaticCredentials(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bucket_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bucket_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bucket_region`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`bucket_region`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` path`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"path/to/store/featureform_files/in/\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` description`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"An s3 store provider to store offline\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.apply()`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`We can re-verify that the provider is created by checking the `,_jsx(_components.a,{href:`/getting-started/search-monitor-discovery-feature-registry-ui-cli`,children:`Providers tab of the Feature Registry or via the CLI`}),`.`]})]})}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":"S3","description":"Featureform supports [AWS S3](https://aws.amazon.com/s3/) as a [File Store](/providers/object-and-file-stores)","href":"/providers/aws-s3"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Configuration","slug":"configuration","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"featureform","siteName":"Featureform","title":"S3 - Featureform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-06T23:45:40.266Z","originalFileLocation":"providers/aws-s3.mdx"},"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=\"system\"}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=\"Featureform supports AWS S3 as a File Store\">\u003cmeta data-mint-head name=\"application-name\" content=\"Featureform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_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/featureform/v0loGK3GrZwZX3jL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"S3 - Featureform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Featureform supports AWS S3 as a File Store\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Featureform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.featureform.com/providers/aws-s3\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://featureform.mintlify.app/_mintlify/api/og/v2?division=Object+and+File+Stores\u0026amp;title=S3\u0026amp;description=Featureform+supports+%5BAWS+S3%5D%28https%3A%2F%2Faws.amazon.com%2Fs3%2F%29+as+a+%5BFile+Store%5D%28%2Fproviders%2Fobject-and-file-stores%29\u0026amp;theme=e5c0967714b515882258126f\u0026amp;signature=33df0755bf1e9ab6eff3cbcaa9bd7db95d43dab964ede8e30ec7fa4af3ad11bb\">\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=\"S3 - Featureform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Featureform supports AWS S3 as a File Store\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://featureform.mintlify.app/_mintlify/api/og/v2?division=Object+and+File+Stores\u0026amp;title=S3\u0026amp;description=Featureform+supports+%5BAWS+S3%5D%28https%3A%2F%2Faws.amazon.com%2Fs3%2F%29+as+a+%5BFile+Store%5D%28%2Fproviders%2Fobject-and-file-stores%29\u0026amp;theme=e5c0967714b515882258126f\u0026amp;signature=33df0755bf1e9ab6eff3cbcaa9bd7db95d43dab964ede8e30ec7fa4af3ad11bb\">\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/featureform/v0loGK3GrZwZX3jL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Featureform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F7195C\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.featureform.com/providers/aws-s3\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/providers/aws-s3.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.featureform.com/#organization\",\"name\":\"Featureform\",\"url\":\"https://docs.featureform.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/featureform/ge8yI-LRr4sD_ybq/logo.svg?fit=max\u0026auto=format\u0026n=ge8yI-LRr4sD_ybq\u0026q=85\u0026s=5c92640b0314272fdcf5f4061e3d2ae9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.featureform.com#website\",\"name\":\"Featureform\",\"url\":\"https://docs.featureform.com\",\"publisher\":{\"@id\":\"https://docs.featureform.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.featureform.com/providers/aws-s3#webpage\",\"url\":\"https://docs.featureform.com/providers/aws-s3\",\"name\":\"S3\",\"description\":\"Featureform supports AWS S3 as a File Store\",\"dateModified\":\"2026-01-06T23:45:40.266Z\",\"isPartOf\":{\"@id\":\"https://docs.featureform.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.featureform.com/providers/aws-s3#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.featureform.com/providers/aws-s3#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Supported Infrastructure Providers\",\"item\":\"https://docs.featureform.com/providers/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Object and File Stores\",\"item\":\"https://docs.featureform.com/providers/object-and-file-stores\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"S3\",\"item\":\"https://docs.featureform.com/providers/aws-s3\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.featureform.com/providers/aws-s3#article\",\"headline\":\"S3\",\"name\":\"S3\",\"description\":\"Featureform supports AWS S3 as a File Store\",\"url\":\"https://docs.featureform.com/providers/aws-s3\",\"mainEntityOfPage\":{\"@id\":\"https://docs.featureform.com/providers/aws-s3#webpage\"},\"dateModified\":\"2026-01-06T23:45:40.266Z\",\"publisher\":{\"@id\":\"https://docs.featureform.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.featureform.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Featureform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Featureform","nav":{"global":{"tabs":[{"tab":"Python SDK","href":"https://sdk.featureform.com/"}],"anchors":[{"anchor":"Community","href":"https://join.slack.com/t/featureform-community/shared_invite/zt-xhqp2m4i-JOCaN1vRN2NDXSVif10aQg","icon":"slack"},{"anchor":"Github","href":"https://github.com/featureform","icon":"github"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Overview","pages":[{"title":"What is Featureform?","href":"/introduction"},{"title":"Quickstart","href":"/deployment/quickstart-docker"},{"group":"Concepts","pages":[{"title":"Immutability, Lineage, and Directed Acyclic Graphs (DAGs)","href":"/concepts/immutability-lineage-and-dags"},{"title":"Versioning and Variants","href":"/concepts/versioning-and-variants"},{"title":"Setting Custom Tags and Properties","href":"/concepts/tags-and-properties"},{"title":"Streaming Data: Real-time Updates","href":"/concepts/streaming"},{"title":"Exploring Resources with Dataframes","href":"/concepts/dataframes"},{"title":"Dataframe and SQL Transformation Support","href":"/concepts/dataframe-sql-transformation"},{"title":"The LLM Workflow with Featureform","href":"/concepts/rag-vector-db-llms"},{"title":"Calculating On-Demand Features at Request Time","href":"/concepts/on-demand-features-request-time"},{"title":"Search and Discover Features and Transformations","href":"/concepts/search-and-discovery-features"},{"title":"Achieving Point-in-Time Correctness and Handling Historical Features with Time Series Data","href":"/concepts/point-in-time-correctness-historical-features-timeseries-data"},{"title":"Governance and Access Control: Ensuring Compliance","href":"/concepts/governance-and-access-control"},{"title":"Open-Source vs. Enterprise Featureform: What Sets Them Apart","href":"/concepts/enterprise-vs-open-source-feature-store"}]}]},{"group":"Using Featureform","pages":[{"title":"Featureform Workflow","href":"/getting-started/featureform-workflow"},{"title":"Architecture and Components","href":"/getting-started/architecture-and-components"},{"title":"Registering Infrastructure Providers","href":"/getting-started/connecting-your-data-infrastructure"},{"group":"Register, Transform, and Interact with Data Sets","pages":[{"title":"Transforming Data Sets","sidebarTitle":"Overview","href":"/getting-started/registering-transforming-and-interacting-with-data-sets"},{"title":"Scheduling Resources","href":"/getting-started/scheduling-resources"},{"title":"Streaming Data: Real-time Updates","href":"/getting-started/streaming-features"},{"title":"Calculating On-Demand Features at Request Time","href":"/getting-started/on-demand-features-request-time"}]},{"group":"Register and Serve Features and Training Sets","pages":[{"title":"Register and Serve Features, Labels, and Training Sets","sidebarTitle":"Overview","href":"/getting-started/register-and-serve-features-training-sets"},{"title":"Model to Feature Lineage","href":"/getting-started/model-to-feature-lineage"},{"title":"Calculating On-Demand Features at Request Time","href":"/getting-started/on-demand-features-request-time"},{"title":"Streaming Data: Real-time Updates","href":"/getting-started/streaming-features"}]},{"title":"Exploring the Feature Registry","href":"/getting-started/search-monitor-discovery-feature-registry-ui-cli"}]},{"group":"Featureform Resource Types","pages":[{"title":"Abstractions","href":"/abstractions/abstractions"},{"title":"Data Infrastructure Provider","href":"/abstractions/data-infrastructure-providers"},{"title":"Primary Data Sets","href":"/abstractions/primary-data-sets"},{"title":"Transforming Data Sets","href":"/abstractions/transforming-data-sets"},{"title":"Entities","href":"/abstractions/entity"},{"title":"Features","href":"/abstractions/feature"},{"title":"Embeddings","href":"/abstractions/embedding"},{"title":"Labels","href":"/abstractions/label"},{"title":"Training Sets","href":"/abstractions/training-set"}]},{"group":"LLMs, Embeddings, and Vector Databases","pages":[{"title":"LLM Workflow","href":"/llms-embeddings-and-vector-databases/llm-workflow-with-featureform"},{"title":"Building a Chatbot with OpenAI and a Vector Database","href":"/llms-embeddings-and-vector-databases/building-a-chatbot-with-openai-and-a-vector-database"}]},{"group":"Common Use Cases and Examples","pages":[{"title":"Fraud Detection and Featureform","href":"/use-cases/fraud-detection"},{"title":"Retrieval Augmented Generation (RAG) Workflow for Chatbots with Featureform","href":"/use-cases/llm-chatbot-rag"}]},{"group":"Supported Infrastructure Providers","pages":[{"title":"Overview of Infrastructure Providers","href":"/providers/overview"},{"group":"Offline Stores","pages":[{"title":"Offline Store","sidebarTitle":"Overview","href":"/providers/offline-store"},{"title":"Snowflake","href":"/providers/snowflake"},{"title":"Spark","href":"/providers/spark"},{"title":"Spark with Databricks","href":"/providers/spark_databricks"},{"title":"Spark with EMR","href":"/providers/spark_emr"},{"title":"Kubernetes","href":"/providers/kubernetes"},{"title":"BigQuery","href":"/providers/bigquery"},{"title":"Postgres","href":"/providers/postgres"},{"title":"Redshift","href":"/providers/redshift"},{"title":"ClickHouse","href":"/providers/clickhouse"}]},{"group":"Object and File Stores","pages":[{"title":"Object and File Stores","sidebarTitle":"Overview","description":"Object and File Stores serve as fundamental components within the Featureform framework, particularly in the context of ETL-based offline stores like Spark and Pandas on K8s. These stores fulfill two primary functions within Featureform:","href":"/providers/object-and-file-stores"},{"title":"S3","href":"/providers/aws-s3"},{"title":"Azure Blobs","description":"Featureform supports [Azure Blob Store](https://azure.microsoft.com/en-us/products/storage/blobs/) as a [File Store](/providers/object-and-file-stores)","href":"/providers/azure-blob-store"},{"title":"Google Cloud (GCS)","href":"/providers/google-cloud-gcs"},{"title":"HDFS","href":"/providers/hdfs"}]},{"group":"Inference Stores","pages":[{"title":"Cassandra","href":"/inference-online-stores/cassandra"},{"title":"DynamoDB","href":"/inference-online-stores/dynamodb"},{"title":"Firestore","href":"/inference-online-stores/firestore"},{"title":"MongoDB","href":"/inference-online-stores/mongodb"},{"title":"Redis","href":"/inference-online-stores/redis"}]},{"group":"Vector Databases","pages":[{"title":"Vector Database","sidebarTitle":"Overview","href":"/providers/vector-db"},{"title":"Redis","href":"/providers/redis"},{"title":"Pinecone","href":"/providers/pinecone"},{"title":"Weaviate","href":"/providers/weaviate"}]},{"title":"Extending Featureform with Custom Providers and Requesting New Providers","href":"/providers/custom-providers"}]},{"group":"Deployment","pages":[{"title":"Local mode","href":"/deployment/local-mode"},{"title":"Quickstart","href":"/deployment/quickstart-docker"},{"title":"Kubernetes","href":"/deployment/kubernetes"},{"title":"AWS","href":"/deployment/quickstart-aws"},{"title":"Azure","href":"/deployment/quickstart-azure"},{"title":"Google Cloud","href":"/deployment/quickstart-gcp"},{"title":"System Architecture","href":"/system-architecture"},{"title":"Backup and Restore","href":"/deployment/backup-and-restore"}]}]}]},"basePath":"","title":"S3 - Featureform","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}