[{"data":1,"prerenderedAt":1728},["ShallowReactive",2],{"docs-meta-/docs/s3-quickstart":3,"content-query-EnXtkoOCyx":6,"markdown-page-nav:{\"path\":\"/docs\"}":1691,"content-navigation-Tlu2f2EPlD":1717},{"title":4,"description":5},"Get Started with the S3 API","From nothing to a stored object with the AWS CLI, boto3, and the JavaScript SDK. Endpoint, profile settings, bucket creation, upload, download, and what is not supported yet.",{"_path":7,"_dir":8,"_draft":9,"_partial":9,"_locale":10,"title":4,"description":5,"navigation":11,"body":14,"_type":1685,"_id":1686,"_source":1687,"_file":1688,"_stem":1689,"_extension":1690},"/docs/s3-quickstart","docs",false,"",{"group":12,"order":13},"Get Started",3,{"type":15,"children":16,"toc":1668},"root",[17,25,31,36,43,97,103,110,129,134,144,150,155,183,204,210,215,226,331,341,372,377,408,414,465,473,478,491,497,539,547,553,588,596,602,642,647,653,688,698,704,957,963,1586,1592,1597,1631,1637,1662],{"type":18,"tag":19,"props":20,"children":22},"element","h1",{"id":21},"get-started-with-the-s3-api",[23],{"type":24,"value":4},"text",{"type":18,"tag":26,"props":27,"children":28},"p",{},[29],{"type":24,"value":30},"IronShard speaks the Amazon S3 API. Any tool that talks to S3, including the AWS CLI, boto3, the JavaScript SDK, s3cmd, and Cyberduck, works against it with a changed endpoint and no client library of ours. What differs is underneath: every object is encrypted, erasure-coded into fragments, and distributed across the providers and locations you allow, so no single provider holds a complete object.",{"type":18,"tag":26,"props":32,"children":33},{},[34],{"type":24,"value":35},"This page goes from nothing to a stored object using the AWS CLI, then shows the same sequence in Python and JavaScript.",{"type":18,"tag":37,"props":38,"children":40},"h2",{"id":39},"what-you-need",[41],{"type":24,"value":42},"What You Need",{"type":18,"tag":44,"props":45,"children":46},"ul",{},[47,66,87],{"type":18,"tag":48,"props":49,"children":50},"li",{},[51,57,59],{"type":18,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":24,"value":56},"Endpoint:",{"type":24,"value":58}," ",{"type":18,"tag":60,"props":61,"children":63},"code",{"className":62},[],[64],{"type":24,"value":65},"https://s3.ironshard.ai",{"type":18,"tag":48,"props":67,"children":68},{},[69,74,76,85],{"type":18,"tag":52,"props":70,"children":71},{},[72],{"type":24,"value":73},"Access key:",{"type":24,"value":75}," An access key ID and secret access key, created in the ",{"type":18,"tag":77,"props":78,"children":82},"a",{"href":79,"rel":80},"https://console.ironshard.ai",[81],"nofollow",[83],{"type":24,"value":84},"console",{"type":24,"value":86},".",{"type":18,"tag":48,"props":88,"children":89},{},[90,95],{"type":18,"tag":52,"props":91,"children":92},{},[93],{"type":24,"value":94},"Geo-fence:",{"type":24,"value":96}," Defines the regions an object's fragments may be placed in. Leave it unset for now; your account's default is applied.",{"type":18,"tag":37,"props":98,"children":100},{"id":99},"walkthrough",[101],{"type":24,"value":102},"Walkthrough",{"type":18,"tag":104,"props":105,"children":107},"h3",{"id":106},"_1-create-an-access-key",[108],{"type":24,"value":109},"1. Create an Access Key",{"type":18,"tag":26,"props":111,"children":112},{},[113,115,120,122,127],{"type":24,"value":114},"In the ",{"type":18,"tag":77,"props":116,"children":118},{"href":79,"rel":117},[81],[119],{"type":24,"value":84},{"type":24,"value":121},", open ",{"type":18,"tag":52,"props":123,"children":124},{},[125],{"type":24,"value":126},"S3 Access Keys → New API Key",{"type":24,"value":128},". Grant the key permission to create buckets, since step 4 needs it.",{"type":18,"tag":26,"props":130,"children":131},{},[132],{"type":24,"value":133},"The secret access key is shown once, when the key is created. Copy it into your secret manager before closing the dialog. A lost secret cannot be recovered; you create a replacement key and delete the old one.",{"type":18,"tag":26,"props":135,"children":136},{},[137,142],{"type":18,"tag":52,"props":138,"children":139},{},[140],{"type":24,"value":141},"Name the key for the workload.",{"type":24,"value":143}," Name it for the service or job that will use it, not for the person creating it. One key per consumer keeps request logs legible and lets you retire a single workload without rotating credentials everywhere else.",{"type":18,"tag":104,"props":145,"children":147},{"id":146},"_2-install-aws-cli-v2",[148],{"type":24,"value":149},"2. Install AWS CLI v2",{"type":18,"tag":26,"props":151,"children":152},{},[153],{"type":24,"value":154},"Confirm the major version is 2:",{"type":18,"tag":156,"props":157,"children":161},"pre",{"code":158,"language":159,"meta":10,"className":160,"style":10},"aws --version\n","bash","language-bash shiki shiki-themes synthwave-84",[162],{"type":18,"tag":60,"props":163,"children":164},{"__ignoreMap":10},[165],{"type":18,"tag":166,"props":167,"children":170},"span",{"class":168,"line":169},"line",1,[171,177],{"type":18,"tag":166,"props":172,"children":174},{"style":173},"--shiki-default:#FE4450",[175],{"type":24,"value":176},"aws",{"type":18,"tag":166,"props":178,"children":180},{"style":179},"--shiki-default:#F97E72",[181],{"type":24,"value":182}," --version\n",{"type":18,"tag":26,"props":184,"children":185},{},[186,188,194,196,202],{"type":24,"value":187},"The output starts with ",{"type":18,"tag":60,"props":189,"children":191},{"className":190},[],[192],{"type":24,"value":193},"aws-cli/2.",{"type":24,"value":195},". Version 1 does not support the ",{"type":18,"tag":60,"props":197,"children":199},{"className":198},[],[200],{"type":24,"value":201},"endpoint_url",{"type":24,"value":203}," profile setting used below.",{"type":18,"tag":104,"props":205,"children":207},{"id":206},"_3-configure-a-profile",[208],{"type":24,"value":209},"3. Configure a Profile",{"type":18,"tag":26,"props":211,"children":212},{},[213],{"type":24,"value":214},"Add a named profile so IronShard sits alongside any AWS profiles you already have. If these files exist, append to them.",{"type":18,"tag":26,"props":216,"children":217},{},[218,224],{"type":18,"tag":60,"props":219,"children":221},{"className":220},[],[222],{"type":24,"value":223},"~/.aws/config",{"type":24,"value":225},":",{"type":18,"tag":156,"props":227,"children":231},{"code":228,"language":229,"meta":10,"className":230,"style":10},"[profile ironshard]\nendpoint_url = https://s3.ironshard.ai\nsignature_version = s3v4\n\ns3 =\n    addressing_style = path\n    multipart_threshold = 128MB\n    multipart_chunksize = 128MB\n\ns3api =\n    addressing_style = path\n","ini","language-ini shiki shiki-themes synthwave-84",[232],{"type":18,"tag":60,"props":233,"children":234},{"__ignoreMap":10},[235,243,252,260,270,279,288,297,306,314,323],{"type":18,"tag":166,"props":236,"children":237},{"class":168,"line":169},[238],{"type":18,"tag":166,"props":239,"children":240},{},[241],{"type":24,"value":242},"[profile ironshard]\n",{"type":18,"tag":166,"props":244,"children":246},{"class":168,"line":245},2,[247],{"type":18,"tag":166,"props":248,"children":249},{},[250],{"type":24,"value":251},"endpoint_url = https://s3.ironshard.ai\n",{"type":18,"tag":166,"props":253,"children":254},{"class":168,"line":13},[255],{"type":18,"tag":166,"props":256,"children":257},{},[258],{"type":24,"value":259},"signature_version = s3v4\n",{"type":18,"tag":166,"props":261,"children":263},{"class":168,"line":262},4,[264],{"type":18,"tag":166,"props":265,"children":267},{"emptyLinePlaceholder":266},true,[268],{"type":24,"value":269},"\n",{"type":18,"tag":166,"props":271,"children":273},{"class":168,"line":272},5,[274],{"type":18,"tag":166,"props":275,"children":276},{},[277],{"type":24,"value":278},"s3 =\n",{"type":18,"tag":166,"props":280,"children":282},{"class":168,"line":281},6,[283],{"type":18,"tag":166,"props":284,"children":285},{},[286],{"type":24,"value":287},"    addressing_style = path\n",{"type":18,"tag":166,"props":289,"children":291},{"class":168,"line":290},7,[292],{"type":18,"tag":166,"props":293,"children":294},{},[295],{"type":24,"value":296},"    multipart_threshold = 128MB\n",{"type":18,"tag":166,"props":298,"children":300},{"class":168,"line":299},8,[301],{"type":18,"tag":166,"props":302,"children":303},{},[304],{"type":24,"value":305},"    multipart_chunksize = 128MB\n",{"type":18,"tag":166,"props":307,"children":309},{"class":168,"line":308},9,[310],{"type":18,"tag":166,"props":311,"children":312},{"emptyLinePlaceholder":266},[313],{"type":24,"value":269},{"type":18,"tag":166,"props":315,"children":317},{"class":168,"line":316},10,[318],{"type":18,"tag":166,"props":319,"children":320},{},[321],{"type":24,"value":322},"s3api =\n",{"type":18,"tag":166,"props":324,"children":326},{"class":168,"line":325},11,[327],{"type":18,"tag":166,"props":328,"children":329},{},[330],{"type":24,"value":287},{"type":18,"tag":26,"props":332,"children":333},{},[334,340],{"type":18,"tag":60,"props":335,"children":337},{"className":336},[],[338],{"type":24,"value":339},"~/.aws/credentials",{"type":24,"value":225},{"type":18,"tag":156,"props":342,"children":344},{"code":343,"language":229,"meta":10,"className":230,"style":10},"[ironshard]\naws_access_key_id = \u003CYOUR_ACCESS_KEY_ID>\naws_secret_access_key = \u003CYOUR_SECRET_ACCESS_KEY>\n",[345],{"type":18,"tag":60,"props":346,"children":347},{"__ignoreMap":10},[348,356,364],{"type":18,"tag":166,"props":349,"children":350},{"class":168,"line":169},[351],{"type":18,"tag":166,"props":352,"children":353},{},[354],{"type":24,"value":355},"[ironshard]\n",{"type":18,"tag":166,"props":357,"children":358},{"class":168,"line":245},[359],{"type":18,"tag":166,"props":360,"children":361},{},[362],{"type":24,"value":363},"aws_access_key_id = \u003CYOUR_ACCESS_KEY_ID>\n",{"type":18,"tag":166,"props":365,"children":366},{"class":168,"line":13},[367],{"type":18,"tag":166,"props":368,"children":369},{},[370],{"type":24,"value":371},"aws_secret_access_key = \u003CYOUR_SECRET_ACCESS_KEY>\n",{"type":18,"tag":26,"props":373,"children":374},{},[375],{"type":24,"value":376},"Two of these settings matter more than they look:",{"type":18,"tag":44,"props":378,"children":379},{},[380,398],{"type":18,"tag":48,"props":381,"children":382},{},[383,388,390,396],{"type":18,"tag":52,"props":384,"children":385},{},[386],{"type":24,"value":387},"Path addressing.",{"type":24,"value":389}," Buckets are addressed as ",{"type":18,"tag":60,"props":391,"children":393},{"className":392},[],[394],{"type":24,"value":395},"https://s3.ironshard.ai/BUCKET/OBJECT",{"type":24,"value":397},", not as subdomains.",{"type":18,"tag":48,"props":399,"children":400},{},[401,406],{"type":18,"tag":52,"props":402,"children":403},{},[404],{"type":24,"value":405},"128 MB parts.",{"type":24,"value":407}," This matches the chunk size IronShard uses internally. Other values force re-chunking on our side and measurably slow both uploads and downloads.",{"type":18,"tag":104,"props":409,"children":411},{"id":410},"_4-create-a-bucket",[412],{"type":24,"value":413},"4. Create a Bucket",{"type":18,"tag":156,"props":415,"children":417},{"code":416,"language":159,"meta":10,"className":160,"style":10},"aws s3 mb s3://agent-scratch-7fk2qa --profile ironshard --region \"\"\n",[418],{"type":18,"tag":60,"props":419,"children":420},{"__ignoreMap":10},[421],{"type":18,"tag":166,"props":422,"children":423},{"class":168,"line":169},[424,428,434,439,444,449,454,459],{"type":18,"tag":166,"props":425,"children":426},{"style":173},[427],{"type":24,"value":176},{"type":18,"tag":166,"props":429,"children":431},{"style":430},"--shiki-default:#BBBBBB",[432],{"type":24,"value":433}," s3",{"type":18,"tag":166,"props":435,"children":436},{"style":430},[437],{"type":24,"value":438}," mb",{"type":18,"tag":166,"props":440,"children":441},{"style":430},[442],{"type":24,"value":443}," s3://agent-scratch-7fk2qa",{"type":18,"tag":166,"props":445,"children":446},{"style":179},[447],{"type":24,"value":448}," --profile",{"type":18,"tag":166,"props":450,"children":451},{"style":430},[452],{"type":24,"value":453}," ironshard",{"type":18,"tag":166,"props":455,"children":456},{"style":179},[457],{"type":24,"value":458}," --region",{"type":18,"tag":166,"props":460,"children":462},{"style":461},"--shiki-default:#FF8B39",[463],{"type":24,"value":464}," \"\"\n",{"type":18,"tag":156,"props":466,"children":468},{"code":467},"make_bucket: agent-scratch-7fk2qa\n",[469],{"type":18,"tag":60,"props":470,"children":471},{"__ignoreMap":10},[472],{"type":24,"value":467},{"type":18,"tag":26,"props":474,"children":475},{},[476],{"type":24,"value":477},"Bucket names are globally unique across the platform, so the example carries a random suffix.",{"type":18,"tag":26,"props":479,"children":480},{},[481,483,489],{"type":24,"value":482},"The ",{"type":18,"tag":60,"props":484,"children":486},{"className":485},[],[487],{"type":24,"value":488},"--region",{"type":24,"value":490}," flag is where a geo-fence would go. Leave it as an empty string and your default is chosen. This is the only request where region means anything. Everywhere else, set it to any value.",{"type":18,"tag":104,"props":492,"children":494},{"id":493},"_5-upload-an-object",[495],{"type":24,"value":496},"5. Upload an Object",{"type":18,"tag":156,"props":498,"children":500},{"code":499,"language":159,"meta":10,"className":160,"style":10},"aws s3 cp ./report.parquet s3://agent-scratch-7fk2qa/ --profile ironshard\n",[501],{"type":18,"tag":60,"props":502,"children":503},{"__ignoreMap":10},[504],{"type":18,"tag":166,"props":505,"children":506},{"class":168,"line":169},[507,511,515,520,525,530,534],{"type":18,"tag":166,"props":508,"children":509},{"style":173},[510],{"type":24,"value":176},{"type":18,"tag":166,"props":512,"children":513},{"style":430},[514],{"type":24,"value":433},{"type":18,"tag":166,"props":516,"children":517},{"style":430},[518],{"type":24,"value":519}," cp",{"type":18,"tag":166,"props":521,"children":522},{"style":430},[523],{"type":24,"value":524}," ./report.parquet",{"type":18,"tag":166,"props":526,"children":527},{"style":430},[528],{"type":24,"value":529}," s3://agent-scratch-7fk2qa/",{"type":18,"tag":166,"props":531,"children":532},{"style":179},[533],{"type":24,"value":448},{"type":18,"tag":166,"props":535,"children":536},{"style":430},[537],{"type":24,"value":538}," ironshard\n",{"type":18,"tag":156,"props":540,"children":542},{"code":541},"upload: ./report.parquet to s3://agent-scratch-7fk2qa/report.parquet\n",[543],{"type":18,"tag":60,"props":544,"children":545},{"__ignoreMap":10},[546],{"type":24,"value":541},{"type":18,"tag":104,"props":548,"children":550},{"id":549},"_6-list-the-bucket",[551],{"type":24,"value":552},"6. List the Bucket",{"type":18,"tag":156,"props":554,"children":556},{"code":555,"language":159,"meta":10,"className":160,"style":10},"aws s3 ls s3://agent-scratch-7fk2qa --profile ironshard\n",[557],{"type":18,"tag":60,"props":558,"children":559},{"__ignoreMap":10},[560],{"type":18,"tag":166,"props":561,"children":562},{"class":168,"line":169},[563,567,571,576,580,584],{"type":18,"tag":166,"props":564,"children":565},{"style":173},[566],{"type":24,"value":176},{"type":18,"tag":166,"props":568,"children":569},{"style":430},[570],{"type":24,"value":433},{"type":18,"tag":166,"props":572,"children":573},{"style":430},[574],{"type":24,"value":575}," ls",{"type":18,"tag":166,"props":577,"children":578},{"style":430},[579],{"type":24,"value":443},{"type":18,"tag":166,"props":581,"children":582},{"style":179},[583],{"type":24,"value":448},{"type":18,"tag":166,"props":585,"children":586},{"style":430},[587],{"type":24,"value":538},{"type":18,"tag":156,"props":589,"children":591},{"code":590},"2026-09-22 14:22:10    4823104 report.parquet\n",[592],{"type":18,"tag":60,"props":593,"children":594},{"__ignoreMap":10},[595],{"type":24,"value":590},{"type":18,"tag":104,"props":597,"children":599},{"id":598},"_7-download-it-back",[600],{"type":24,"value":601},"7. Download It Back",{"type":18,"tag":156,"props":603,"children":605},{"code":604,"language":159,"meta":10,"className":160,"style":10},"aws s3 cp s3://agent-scratch-7fk2qa/report.parquet ./restored.parquet --profile ironshard\n",[606],{"type":18,"tag":60,"props":607,"children":608},{"__ignoreMap":10},[609],{"type":18,"tag":166,"props":610,"children":611},{"class":168,"line":169},[612,616,620,624,629,634,638],{"type":18,"tag":166,"props":613,"children":614},{"style":173},[615],{"type":24,"value":176},{"type":18,"tag":166,"props":617,"children":618},{"style":430},[619],{"type":24,"value":433},{"type":18,"tag":166,"props":621,"children":622},{"style":430},[623],{"type":24,"value":519},{"type":18,"tag":166,"props":625,"children":626},{"style":430},[627],{"type":24,"value":628}," s3://agent-scratch-7fk2qa/report.parquet",{"type":18,"tag":166,"props":630,"children":631},{"style":430},[632],{"type":24,"value":633}," ./restored.parquet",{"type":18,"tag":166,"props":635,"children":636},{"style":179},[637],{"type":24,"value":448},{"type":18,"tag":166,"props":639,"children":640},{"style":430},[641],{"type":24,"value":538},{"type":18,"tag":26,"props":643,"children":644},{},[645],{"type":24,"value":646},"Byte-range downloads are supported, so a client can fetch part of an object without reading the whole thing.",{"type":18,"tag":104,"props":648,"children":650},{"id":649},"_8-delete-it",[651],{"type":24,"value":652},"8. Delete It",{"type":18,"tag":156,"props":654,"children":656},{"code":655,"language":159,"meta":10,"className":160,"style":10},"aws s3 rm s3://agent-scratch-7fk2qa/report.parquet --profile ironshard\n",[657],{"type":18,"tag":60,"props":658,"children":659},{"__ignoreMap":10},[660],{"type":18,"tag":166,"props":661,"children":662},{"class":168,"line":169},[663,667,671,676,680,684],{"type":18,"tag":166,"props":664,"children":665},{"style":173},[666],{"type":24,"value":176},{"type":18,"tag":166,"props":668,"children":669},{"style":430},[670],{"type":24,"value":433},{"type":18,"tag":166,"props":672,"children":673},{"style":430},[674],{"type":24,"value":675}," rm",{"type":18,"tag":166,"props":677,"children":678},{"style":430},[679],{"type":24,"value":628},{"type":18,"tag":166,"props":681,"children":682},{"style":179},[683],{"type":24,"value":448},{"type":18,"tag":166,"props":685,"children":686},{"style":430},[687],{"type":24,"value":538},{"type":18,"tag":26,"props":689,"children":690},{},[691,696],{"type":18,"tag":52,"props":692,"children":693},{},[694],{"type":24,"value":695},"Versioning is always on.",{"type":24,"value":697}," Every bucket is versioned and versioning cannot be switched off. A delete writes a delete marker rather than removing data. Earlier versions stay until you delete them explicitly by version ID. Plan for this when you estimate stored volume, and when an agent's cleanup step \"frees\" space.",{"type":18,"tag":37,"props":699,"children":701},{"id":700},"the-same-thing-in-python",[702],{"type":24,"value":703},"The Same Thing in Python",{"type":18,"tag":156,"props":705,"children":709},{"code":706,"language":707,"meta":10,"className":708,"style":10},"import os\nimport boto3\nfrom boto3.s3.transfer import TransferConfig\nfrom botocore.config import Config\n\ns3 = boto3.client(\n    \"s3\",\n    endpoint_url=\"https://s3.ironshard.ai\",\n    region_name=\"us-east-1\",          # required for signing; ignored by IronShard\n    aws_access_key_id=os.environ[\"IRONSHARD_ACCESS_KEY_ID\"],\n    aws_secret_access_key=os.environ[\"IRONSHARD_SECRET_ACCESS_KEY\"],\n    config=Config(\n        signature_version=\"s3v4\",\n        s3={\"addressing_style\": \"path\"},\n    ),\n)\n\n# Leave LocationConstraint out; the default geo-fence is applied.\ns3.create_bucket(Bucket=\"agent-scratch-7fk2qa\")\n\ntransfer = TransferConfig(\n    multipart_threshold=128 * 1024 * 1024,\n    multipart_chunksize=128 * 1024 * 1024,\n)\n\ns3.upload_file(\n    \"report.parquet\", \"agent-scratch-7fk2qa\", \"report.parquet\",\n    Config=transfer,\n)\n","python","language-python shiki shiki-themes synthwave-84",[710],{"type":18,"tag":60,"props":711,"children":712},{"__ignoreMap":10},[713,721,729,737,745,752,760,768,776,784,792,800,809,818,827,836,845,853,862,871,879,888,897,906,914,922,931,940,949],{"type":18,"tag":166,"props":714,"children":715},{"class":168,"line":169},[716],{"type":18,"tag":166,"props":717,"children":718},{},[719],{"type":24,"value":720},"import os\n",{"type":18,"tag":166,"props":722,"children":723},{"class":168,"line":245},[724],{"type":18,"tag":166,"props":725,"children":726},{},[727],{"type":24,"value":728},"import boto3\n",{"type":18,"tag":166,"props":730,"children":731},{"class":168,"line":13},[732],{"type":18,"tag":166,"props":733,"children":734},{},[735],{"type":24,"value":736},"from boto3.s3.transfer import TransferConfig\n",{"type":18,"tag":166,"props":738,"children":739},{"class":168,"line":262},[740],{"type":18,"tag":166,"props":741,"children":742},{},[743],{"type":24,"value":744},"from botocore.config import Config\n",{"type":18,"tag":166,"props":746,"children":747},{"class":168,"line":272},[748],{"type":18,"tag":166,"props":749,"children":750},{"emptyLinePlaceholder":266},[751],{"type":24,"value":269},{"type":18,"tag":166,"props":753,"children":754},{"class":168,"line":281},[755],{"type":18,"tag":166,"props":756,"children":757},{},[758],{"type":24,"value":759},"s3 = boto3.client(\n",{"type":18,"tag":166,"props":761,"children":762},{"class":168,"line":290},[763],{"type":18,"tag":166,"props":764,"children":765},{},[766],{"type":24,"value":767},"    \"s3\",\n",{"type":18,"tag":166,"props":769,"children":770},{"class":168,"line":299},[771],{"type":18,"tag":166,"props":772,"children":773},{},[774],{"type":24,"value":775},"    endpoint_url=\"https://s3.ironshard.ai\",\n",{"type":18,"tag":166,"props":777,"children":778},{"class":168,"line":308},[779],{"type":18,"tag":166,"props":780,"children":781},{},[782],{"type":24,"value":783},"    region_name=\"us-east-1\",          # required for signing; ignored by IronShard\n",{"type":18,"tag":166,"props":785,"children":786},{"class":168,"line":316},[787],{"type":18,"tag":166,"props":788,"children":789},{},[790],{"type":24,"value":791},"    aws_access_key_id=os.environ[\"IRONSHARD_ACCESS_KEY_ID\"],\n",{"type":18,"tag":166,"props":793,"children":794},{"class":168,"line":325},[795],{"type":18,"tag":166,"props":796,"children":797},{},[798],{"type":24,"value":799},"    aws_secret_access_key=os.environ[\"IRONSHARD_SECRET_ACCESS_KEY\"],\n",{"type":18,"tag":166,"props":801,"children":803},{"class":168,"line":802},12,[804],{"type":18,"tag":166,"props":805,"children":806},{},[807],{"type":24,"value":808},"    config=Config(\n",{"type":18,"tag":166,"props":810,"children":812},{"class":168,"line":811},13,[813],{"type":18,"tag":166,"props":814,"children":815},{},[816],{"type":24,"value":817},"        signature_version=\"s3v4\",\n",{"type":18,"tag":166,"props":819,"children":821},{"class":168,"line":820},14,[822],{"type":18,"tag":166,"props":823,"children":824},{},[825],{"type":24,"value":826},"        s3={\"addressing_style\": \"path\"},\n",{"type":18,"tag":166,"props":828,"children":830},{"class":168,"line":829},15,[831],{"type":18,"tag":166,"props":832,"children":833},{},[834],{"type":24,"value":835},"    ),\n",{"type":18,"tag":166,"props":837,"children":839},{"class":168,"line":838},16,[840],{"type":18,"tag":166,"props":841,"children":842},{},[843],{"type":24,"value":844},")\n",{"type":18,"tag":166,"props":846,"children":848},{"class":168,"line":847},17,[849],{"type":18,"tag":166,"props":850,"children":851},{"emptyLinePlaceholder":266},[852],{"type":24,"value":269},{"type":18,"tag":166,"props":854,"children":856},{"class":168,"line":855},18,[857],{"type":18,"tag":166,"props":858,"children":859},{},[860],{"type":24,"value":861},"# Leave LocationConstraint out; the default geo-fence is applied.\n",{"type":18,"tag":166,"props":863,"children":865},{"class":168,"line":864},19,[866],{"type":18,"tag":166,"props":867,"children":868},{},[869],{"type":24,"value":870},"s3.create_bucket(Bucket=\"agent-scratch-7fk2qa\")\n",{"type":18,"tag":166,"props":872,"children":874},{"class":168,"line":873},20,[875],{"type":18,"tag":166,"props":876,"children":877},{"emptyLinePlaceholder":266},[878],{"type":24,"value":269},{"type":18,"tag":166,"props":880,"children":882},{"class":168,"line":881},21,[883],{"type":18,"tag":166,"props":884,"children":885},{},[886],{"type":24,"value":887},"transfer = TransferConfig(\n",{"type":18,"tag":166,"props":889,"children":891},{"class":168,"line":890},22,[892],{"type":18,"tag":166,"props":893,"children":894},{},[895],{"type":24,"value":896},"    multipart_threshold=128 * 1024 * 1024,\n",{"type":18,"tag":166,"props":898,"children":900},{"class":168,"line":899},23,[901],{"type":18,"tag":166,"props":902,"children":903},{},[904],{"type":24,"value":905},"    multipart_chunksize=128 * 1024 * 1024,\n",{"type":18,"tag":166,"props":907,"children":909},{"class":168,"line":908},24,[910],{"type":18,"tag":166,"props":911,"children":912},{},[913],{"type":24,"value":844},{"type":18,"tag":166,"props":915,"children":917},{"class":168,"line":916},25,[918],{"type":18,"tag":166,"props":919,"children":920},{"emptyLinePlaceholder":266},[921],{"type":24,"value":269},{"type":18,"tag":166,"props":923,"children":925},{"class":168,"line":924},26,[926],{"type":18,"tag":166,"props":927,"children":928},{},[929],{"type":24,"value":930},"s3.upload_file(\n",{"type":18,"tag":166,"props":932,"children":934},{"class":168,"line":933},27,[935],{"type":18,"tag":166,"props":936,"children":937},{},[938],{"type":24,"value":939},"    \"report.parquet\", \"agent-scratch-7fk2qa\", \"report.parquet\",\n",{"type":18,"tag":166,"props":941,"children":943},{"class":168,"line":942},28,[944],{"type":18,"tag":166,"props":945,"children":946},{},[947],{"type":24,"value":948},"    Config=transfer,\n",{"type":18,"tag":166,"props":950,"children":952},{"class":168,"line":951},29,[953],{"type":18,"tag":166,"props":954,"children":955},{},[956],{"type":24,"value":844},{"type":18,"tag":37,"props":958,"children":960},{"id":959},"the-same-thing-in-javascript",[961],{"type":24,"value":962},"The Same Thing in JavaScript",{"type":18,"tag":156,"props":964,"children":968},{"code":965,"language":966,"meta":10,"className":967,"style":10},"import { S3Client, CreateBucketCommand } from \"@aws-sdk/client-s3\";\nimport { Upload } from \"@aws-sdk/lib-storage\";\nimport { createReadStream } from \"node:fs\";\n\nconst s3 = new S3Client({\n  endpoint: \"https://s3.ironshard.ai\",\n  region: \"us-east-1\",        // required for signing; ignored by IronShard\n  forcePathStyle: true,\n  credentials: {\n    accessKeyId: process.env.IRONSHARD_ACCESS_KEY_ID,\n    secretAccessKey: process.env.IRONSHARD_SECRET_ACCESS_KEY,\n  },\n});\n\n// Leave CreateBucketConfiguration out; the default geo-fence is applied.\nawait s3.send(new CreateBucketCommand({ Bucket: \"agent-scratch-7fk2qa\" }));\n\nawait new Upload({\n  client: s3,\n  partSize: 128 * 1024 * 1024,\n  params: {\n    Bucket: \"agent-scratch-7fk2qa\",\n    Key: \"report.parquet\",\n    Body: createReadStream(\"report.parquet\"),\n  },\n}).done();\n","javascript","language-javascript shiki shiki-themes synthwave-84",[969],{"type":18,"tag":60,"props":970,"children":971},{"__ignoreMap":10},[972,1023,1056,1089,1096,1130,1153,1181,1202,1219,1259,1296,1304,1312,1319,1327,1387,1394,1414,1434,1473,1489,1509,1530,1561,1568],{"type":18,"tag":166,"props":973,"children":974},{"class":168,"line":169},[975,981,986,992,997,1002,1007,1013,1018],{"type":18,"tag":166,"props":976,"children":978},{"style":977},"--shiki-default:#72F1B8",[979],{"type":24,"value":980},"import",{"type":18,"tag":166,"props":982,"children":983},{"style":430},[984],{"type":24,"value":985}," { ",{"type":18,"tag":166,"props":987,"children":989},{"style":988},"--shiki-default:#FF7EDB",[990],{"type":24,"value":991},"S3Client",{"type":18,"tag":166,"props":993,"children":994},{"style":430},[995],{"type":24,"value":996},", ",{"type":18,"tag":166,"props":998,"children":999},{"style":988},[1000],{"type":24,"value":1001},"CreateBucketCommand",{"type":18,"tag":166,"props":1003,"children":1004},{"style":430},[1005],{"type":24,"value":1006}," } ",{"type":18,"tag":166,"props":1008,"children":1010},{"style":1009},"--shiki-default:#FEDE5D",[1011],{"type":24,"value":1012},"from",{"type":18,"tag":166,"props":1014,"children":1015},{"style":461},[1016],{"type":24,"value":1017}," \"@aws-sdk/client-s3\"",{"type":18,"tag":166,"props":1019,"children":1020},{"style":430},[1021],{"type":24,"value":1022},";\n",{"type":18,"tag":166,"props":1024,"children":1025},{"class":168,"line":245},[1026,1030,1034,1039,1043,1047,1052],{"type":18,"tag":166,"props":1027,"children":1028},{"style":977},[1029],{"type":24,"value":980},{"type":18,"tag":166,"props":1031,"children":1032},{"style":430},[1033],{"type":24,"value":985},{"type":18,"tag":166,"props":1035,"children":1036},{"style":988},[1037],{"type":24,"value":1038},"Upload",{"type":18,"tag":166,"props":1040,"children":1041},{"style":430},[1042],{"type":24,"value":1006},{"type":18,"tag":166,"props":1044,"children":1045},{"style":1009},[1046],{"type":24,"value":1012},{"type":18,"tag":166,"props":1048,"children":1049},{"style":461},[1050],{"type":24,"value":1051}," \"@aws-sdk/lib-storage\"",{"type":18,"tag":166,"props":1053,"children":1054},{"style":430},[1055],{"type":24,"value":1022},{"type":18,"tag":166,"props":1057,"children":1058},{"class":168,"line":13},[1059,1063,1067,1072,1076,1080,1085],{"type":18,"tag":166,"props":1060,"children":1061},{"style":977},[1062],{"type":24,"value":980},{"type":18,"tag":166,"props":1064,"children":1065},{"style":430},[1066],{"type":24,"value":985},{"type":18,"tag":166,"props":1068,"children":1069},{"style":988},[1070],{"type":24,"value":1071},"createReadStream",{"type":18,"tag":166,"props":1073,"children":1074},{"style":430},[1075],{"type":24,"value":1006},{"type":18,"tag":166,"props":1077,"children":1078},{"style":1009},[1079],{"type":24,"value":1012},{"type":18,"tag":166,"props":1081,"children":1082},{"style":461},[1083],{"type":24,"value":1084}," \"node:fs\"",{"type":18,"tag":166,"props":1086,"children":1087},{"style":430},[1088],{"type":24,"value":1022},{"type":18,"tag":166,"props":1090,"children":1091},{"class":168,"line":262},[1092],{"type":18,"tag":166,"props":1093,"children":1094},{"emptyLinePlaceholder":266},[1095],{"type":24,"value":269},{"type":18,"tag":166,"props":1097,"children":1098},{"class":168,"line":272},[1099,1104,1108,1114,1119,1125],{"type":18,"tag":166,"props":1100,"children":1101},{"style":1009},[1102],{"type":24,"value":1103},"const",{"type":18,"tag":166,"props":1105,"children":1106},{"style":988},[1107],{"type":24,"value":433},{"type":18,"tag":166,"props":1109,"children":1111},{"style":1110},"--shiki-default:#FFFFFFEE",[1112],{"type":24,"value":1113}," =",{"type":18,"tag":166,"props":1115,"children":1116},{"style":1009},[1117],{"type":24,"value":1118}," new",{"type":18,"tag":166,"props":1120,"children":1122},{"style":1121},"--shiki-default:#36F9F6",[1123],{"type":24,"value":1124}," S3Client",{"type":18,"tag":166,"props":1126,"children":1127},{"style":430},[1128],{"type":24,"value":1129},"({\n",{"type":18,"tag":166,"props":1131,"children":1132},{"class":168,"line":281},[1133,1138,1143,1148],{"type":18,"tag":166,"props":1134,"children":1135},{"style":988},[1136],{"type":24,"value":1137},"  endpoint",{"type":18,"tag":166,"props":1139,"children":1141},{"style":1140},"--shiki-default:#B6B1B1",[1142],{"type":24,"value":225},{"type":18,"tag":166,"props":1144,"children":1145},{"style":461},[1146],{"type":24,"value":1147}," \"https://s3.ironshard.ai\"",{"type":18,"tag":166,"props":1149,"children":1150},{"style":430},[1151],{"type":24,"value":1152},",\n",{"type":18,"tag":166,"props":1154,"children":1155},{"class":168,"line":290},[1156,1161,1165,1170,1175],{"type":18,"tag":166,"props":1157,"children":1158},{"style":988},[1159],{"type":24,"value":1160},"  region",{"type":18,"tag":166,"props":1162,"children":1163},{"style":1140},[1164],{"type":24,"value":225},{"type":18,"tag":166,"props":1166,"children":1167},{"style":461},[1168],{"type":24,"value":1169}," \"us-east-1\"",{"type":18,"tag":166,"props":1171,"children":1172},{"style":430},[1173],{"type":24,"value":1174},",        ",{"type":18,"tag":166,"props":1176,"children":1178},{"style":1177},"--shiki-default:#848BBD;--shiki-default-font-style:italic",[1179],{"type":24,"value":1180},"// required for signing; ignored by IronShard\n",{"type":18,"tag":166,"props":1182,"children":1183},{"class":168,"line":299},[1184,1189,1193,1198],{"type":18,"tag":166,"props":1185,"children":1186},{"style":988},[1187],{"type":24,"value":1188},"  forcePathStyle",{"type":18,"tag":166,"props":1190,"children":1191},{"style":1140},[1192],{"type":24,"value":225},{"type":18,"tag":166,"props":1194,"children":1195},{"style":179},[1196],{"type":24,"value":1197}," true",{"type":18,"tag":166,"props":1199,"children":1200},{"style":430},[1201],{"type":24,"value":1152},{"type":18,"tag":166,"props":1203,"children":1204},{"class":168,"line":308},[1205,1210,1214],{"type":18,"tag":166,"props":1206,"children":1207},{"style":988},[1208],{"type":24,"value":1209},"  credentials",{"type":18,"tag":166,"props":1211,"children":1212},{"style":1140},[1213],{"type":24,"value":225},{"type":18,"tag":166,"props":1215,"children":1216},{"style":430},[1217],{"type":24,"value":1218}," {\n",{"type":18,"tag":166,"props":1220,"children":1221},{"class":168,"line":316},[1222,1227,1231,1236,1240,1245,1249,1255],{"type":18,"tag":166,"props":1223,"children":1224},{"style":988},[1225],{"type":24,"value":1226},"    accessKeyId",{"type":18,"tag":166,"props":1228,"children":1229},{"style":1140},[1230],{"type":24,"value":225},{"type":18,"tag":166,"props":1232,"children":1233},{"style":988},[1234],{"type":24,"value":1235}," process",{"type":18,"tag":166,"props":1237,"children":1238},{"style":430},[1239],{"type":24,"value":86},{"type":18,"tag":166,"props":1241,"children":1242},{"style":988},[1243],{"type":24,"value":1244},"env",{"type":18,"tag":166,"props":1246,"children":1247},{"style":430},[1248],{"type":24,"value":86},{"type":18,"tag":166,"props":1250,"children":1252},{"style":1251},"--shiki-default:#2EE2FA",[1253],{"type":24,"value":1254},"IRONSHARD_ACCESS_KEY_ID",{"type":18,"tag":166,"props":1256,"children":1257},{"style":430},[1258],{"type":24,"value":1152},{"type":18,"tag":166,"props":1260,"children":1261},{"class":168,"line":325},[1262,1267,1271,1275,1279,1283,1287,1292],{"type":18,"tag":166,"props":1263,"children":1264},{"style":988},[1265],{"type":24,"value":1266},"    secretAccessKey",{"type":18,"tag":166,"props":1268,"children":1269},{"style":1140},[1270],{"type":24,"value":225},{"type":18,"tag":166,"props":1272,"children":1273},{"style":988},[1274],{"type":24,"value":1235},{"type":18,"tag":166,"props":1276,"children":1277},{"style":430},[1278],{"type":24,"value":86},{"type":18,"tag":166,"props":1280,"children":1281},{"style":988},[1282],{"type":24,"value":1244},{"type":18,"tag":166,"props":1284,"children":1285},{"style":430},[1286],{"type":24,"value":86},{"type":18,"tag":166,"props":1288,"children":1289},{"style":1251},[1290],{"type":24,"value":1291},"IRONSHARD_SECRET_ACCESS_KEY",{"type":18,"tag":166,"props":1293,"children":1294},{"style":430},[1295],{"type":24,"value":1152},{"type":18,"tag":166,"props":1297,"children":1298},{"class":168,"line":802},[1299],{"type":18,"tag":166,"props":1300,"children":1301},{"style":430},[1302],{"type":24,"value":1303},"  },\n",{"type":18,"tag":166,"props":1305,"children":1306},{"class":168,"line":811},[1307],{"type":18,"tag":166,"props":1308,"children":1309},{"style":430},[1310],{"type":24,"value":1311},"});\n",{"type":18,"tag":166,"props":1313,"children":1314},{"class":168,"line":820},[1315],{"type":18,"tag":166,"props":1316,"children":1317},{"emptyLinePlaceholder":266},[1318],{"type":24,"value":269},{"type":18,"tag":166,"props":1320,"children":1321},{"class":168,"line":829},[1322],{"type":18,"tag":166,"props":1323,"children":1324},{"style":1177},[1325],{"type":24,"value":1326},"// Leave CreateBucketConfiguration out; the default geo-fence is applied.\n",{"type":18,"tag":166,"props":1328,"children":1329},{"class":168,"line":838},[1330,1335,1339,1343,1348,1353,1358,1363,1368,1373,1377,1382],{"type":18,"tag":166,"props":1331,"children":1332},{"style":1009},[1333],{"type":24,"value":1334},"await",{"type":18,"tag":166,"props":1336,"children":1337},{"style":988},[1338],{"type":24,"value":433},{"type":18,"tag":166,"props":1340,"children":1341},{"style":430},[1342],{"type":24,"value":86},{"type":18,"tag":166,"props":1344,"children":1345},{"style":1121},[1346],{"type":24,"value":1347},"send",{"type":18,"tag":166,"props":1349,"children":1350},{"style":430},[1351],{"type":24,"value":1352},"(",{"type":18,"tag":166,"props":1354,"children":1355},{"style":1009},[1356],{"type":24,"value":1357},"new",{"type":18,"tag":166,"props":1359,"children":1360},{"style":1121},[1361],{"type":24,"value":1362}," CreateBucketCommand",{"type":18,"tag":166,"props":1364,"children":1365},{"style":430},[1366],{"type":24,"value":1367},"({ ",{"type":18,"tag":166,"props":1369,"children":1370},{"style":988},[1371],{"type":24,"value":1372},"Bucket",{"type":18,"tag":166,"props":1374,"children":1375},{"style":1140},[1376],{"type":24,"value":225},{"type":18,"tag":166,"props":1378,"children":1379},{"style":461},[1380],{"type":24,"value":1381}," \"agent-scratch-7fk2qa\"",{"type":18,"tag":166,"props":1383,"children":1384},{"style":430},[1385],{"type":24,"value":1386}," }));\n",{"type":18,"tag":166,"props":1388,"children":1389},{"class":168,"line":847},[1390],{"type":18,"tag":166,"props":1391,"children":1392},{"emptyLinePlaceholder":266},[1393],{"type":24,"value":269},{"type":18,"tag":166,"props":1395,"children":1396},{"class":168,"line":855},[1397,1401,1405,1410],{"type":18,"tag":166,"props":1398,"children":1399},{"style":1009},[1400],{"type":24,"value":1334},{"type":18,"tag":166,"props":1402,"children":1403},{"style":1009},[1404],{"type":24,"value":1118},{"type":18,"tag":166,"props":1406,"children":1407},{"style":1121},[1408],{"type":24,"value":1409}," Upload",{"type":18,"tag":166,"props":1411,"children":1412},{"style":430},[1413],{"type":24,"value":1129},{"type":18,"tag":166,"props":1415,"children":1416},{"class":168,"line":864},[1417,1422,1426,1430],{"type":18,"tag":166,"props":1418,"children":1419},{"style":988},[1420],{"type":24,"value":1421},"  client",{"type":18,"tag":166,"props":1423,"children":1424},{"style":1140},[1425],{"type":24,"value":225},{"type":18,"tag":166,"props":1427,"children":1428},{"style":988},[1429],{"type":24,"value":433},{"type":18,"tag":166,"props":1431,"children":1432},{"style":430},[1433],{"type":24,"value":1152},{"type":18,"tag":166,"props":1435,"children":1436},{"class":168,"line":873},[1437,1442,1446,1451,1456,1461,1465,1469],{"type":18,"tag":166,"props":1438,"children":1439},{"style":988},[1440],{"type":24,"value":1441},"  partSize",{"type":18,"tag":166,"props":1443,"children":1444},{"style":1140},[1445],{"type":24,"value":225},{"type":18,"tag":166,"props":1447,"children":1448},{"style":1251},[1449],{"type":24,"value":1450}," 128",{"type":18,"tag":166,"props":1452,"children":1453},{"style":1009},[1454],{"type":24,"value":1455}," *",{"type":18,"tag":166,"props":1457,"children":1458},{"style":1251},[1459],{"type":24,"value":1460}," 1024",{"type":18,"tag":166,"props":1462,"children":1463},{"style":1009},[1464],{"type":24,"value":1455},{"type":18,"tag":166,"props":1466,"children":1467},{"style":1251},[1468],{"type":24,"value":1460},{"type":18,"tag":166,"props":1470,"children":1471},{"style":430},[1472],{"type":24,"value":1152},{"type":18,"tag":166,"props":1474,"children":1475},{"class":168,"line":881},[1476,1481,1485],{"type":18,"tag":166,"props":1477,"children":1478},{"style":988},[1479],{"type":24,"value":1480},"  params",{"type":18,"tag":166,"props":1482,"children":1483},{"style":1140},[1484],{"type":24,"value":225},{"type":18,"tag":166,"props":1486,"children":1487},{"style":430},[1488],{"type":24,"value":1218},{"type":18,"tag":166,"props":1490,"children":1491},{"class":168,"line":890},[1492,1497,1501,1505],{"type":18,"tag":166,"props":1493,"children":1494},{"style":988},[1495],{"type":24,"value":1496},"    Bucket",{"type":18,"tag":166,"props":1498,"children":1499},{"style":1140},[1500],{"type":24,"value":225},{"type":18,"tag":166,"props":1502,"children":1503},{"style":461},[1504],{"type":24,"value":1381},{"type":18,"tag":166,"props":1506,"children":1507},{"style":430},[1508],{"type":24,"value":1152},{"type":18,"tag":166,"props":1510,"children":1511},{"class":168,"line":899},[1512,1517,1521,1526],{"type":18,"tag":166,"props":1513,"children":1514},{"style":988},[1515],{"type":24,"value":1516},"    Key",{"type":18,"tag":166,"props":1518,"children":1519},{"style":1140},[1520],{"type":24,"value":225},{"type":18,"tag":166,"props":1522,"children":1523},{"style":461},[1524],{"type":24,"value":1525}," \"report.parquet\"",{"type":18,"tag":166,"props":1527,"children":1528},{"style":430},[1529],{"type":24,"value":1152},{"type":18,"tag":166,"props":1531,"children":1532},{"class":168,"line":908},[1533,1538,1542,1547,1551,1556],{"type":18,"tag":166,"props":1534,"children":1535},{"style":988},[1536],{"type":24,"value":1537},"    Body",{"type":18,"tag":166,"props":1539,"children":1540},{"style":1140},[1541],{"type":24,"value":225},{"type":18,"tag":166,"props":1543,"children":1544},{"style":1121},[1545],{"type":24,"value":1546}," createReadStream",{"type":18,"tag":166,"props":1548,"children":1549},{"style":430},[1550],{"type":24,"value":1352},{"type":18,"tag":166,"props":1552,"children":1553},{"style":461},[1554],{"type":24,"value":1555},"\"report.parquet\"",{"type":18,"tag":166,"props":1557,"children":1558},{"style":430},[1559],{"type":24,"value":1560},"),\n",{"type":18,"tag":166,"props":1562,"children":1563},{"class":168,"line":916},[1564],{"type":18,"tag":166,"props":1565,"children":1566},{"style":430},[1567],{"type":24,"value":1303},{"type":18,"tag":166,"props":1569,"children":1570},{"class":168,"line":924},[1571,1576,1581],{"type":18,"tag":166,"props":1572,"children":1573},{"style":430},[1574],{"type":24,"value":1575},"}).",{"type":18,"tag":166,"props":1577,"children":1578},{"style":1121},[1579],{"type":24,"value":1580},"done",{"type":18,"tag":166,"props":1582,"children":1583},{"style":430},[1584],{"type":24,"value":1585},"();\n",{"type":18,"tag":37,"props":1587,"children":1589},{"id":1588},"what-is-and-isnt-supported-today",[1590],{"type":24,"value":1591},"What Is and Isn't Supported Today",{"type":18,"tag":26,"props":1593,"children":1594},{},[1595],{"type":24,"value":1596},"Full object and bucket lifecycle, multipart upload, versioning, byte-range reads, and user-defined object metadata all work. Three things to know before you design around them:",{"type":18,"tag":44,"props":1598,"children":1599},{},[1600,1621,1626],{"type":18,"tag":48,"props":1601,"children":1602},{},[1603,1605,1611,1613,1619],{"type":24,"value":1604},"Overriding response headers on ",{"type":18,"tag":60,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":24,"value":1610},"GetObject",{"type":24,"value":1612}," (for example ",{"type":18,"tag":60,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":24,"value":1618},"response-cache-control",{"type":24,"value":1620},") is not supported.",{"type":18,"tag":48,"props":1622,"children":1623},{},[1624],{"type":24,"value":1625},"Object tagging is not yet available; user-defined object metadata is.",{"type":18,"tag":48,"props":1627,"children":1628},{},[1629],{"type":24,"value":1630},"There is no CORS configuration, so browser-based clients cannot talk to the endpoint directly. Use a server, an SDK, or the console.",{"type":18,"tag":37,"props":1632,"children":1634},{"id":1633},"next-steps",[1635],{"type":24,"value":1636},"Next Steps",{"type":18,"tag":44,"props":1638,"children":1639},{},[1640,1651],{"type":18,"tag":48,"props":1641,"children":1642},{},[1643,1649],{"type":18,"tag":77,"props":1644,"children":1646},{"href":1645},"/docs/agent-buckets",[1647],{"type":24,"value":1648},"Agent Buckets",{"type":24,"value":1650},": let an autonomous agent create and operate a bucket over MCP, with no account.",{"type":18,"tag":48,"props":1652,"children":1653},{},[1654,1660],{"type":18,"tag":77,"props":1655,"children":1657},{"href":1656},"/docs/resilience",[1658],{"type":24,"value":1659},"Erasure Coding and Distribution",{"type":24,"value":1661},": how objects are erasure-coded and distributed across providers, and geo-fencing.",{"type":18,"tag":1663,"props":1664,"children":1665},"style",{},[1666],{"type":24,"value":1667},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":10,"searchDepth":245,"depth":245,"links":1669},[1670,1671,1681,1682,1683,1684],{"id":39,"depth":245,"text":42},{"id":99,"depth":245,"text":102,"children":1672},[1673,1674,1675,1676,1677,1678,1679,1680],{"id":106,"depth":13,"text":109},{"id":146,"depth":13,"text":149},{"id":206,"depth":13,"text":209},{"id":410,"depth":13,"text":413},{"id":493,"depth":13,"text":496},{"id":549,"depth":13,"text":552},{"id":598,"depth":13,"text":601},{"id":649,"depth":13,"text":652},{"id":700,"depth":245,"text":703},{"id":959,"depth":245,"text":962},{"id":1588,"depth":245,"text":1591},{"id":1633,"depth":245,"text":1636},"markdown","content:docs:s3-quickstart.md","content","docs/s3-quickstart.md","docs/s3-quickstart","md",[1692],{"title":1693,"_path":1694,"children":1695},"Docs overview","/docs",[1696,1700,1701,1705,1709,1712,1713,1714],{"title":1697,"_path":1698,"parent":1699,"order":290},"Adaptive Storage Representation","/docs/adaptive-storage","/docs/system-architecture",{"title":1648,"_path":1645,"group":12,"order":245},{"title":1702,"_path":1703,"group":1704,"order":299},"Branching and Snapshots","/docs/branching","Features",{"title":1706,"_path":1707,"group":1708,"order":308},"GDPR Everywhere","/docs/gdpr-everywhere","Compliance",{"title":1710,"_path":1711,"parent":1699,"order":272},"Secure Ingest Pipeline","/docs/ingest-pipeline",{"title":1659,"_path":1656,"parent":1699,"order":281},{"title":4,"_path":7,"group":12,"order":13},{"title":1715,"_path":1699,"group":1716,"order":262},"System Architecture","Platform",[1718],{"title":1693,"_path":1694,"children":1719},[1720,1721,1722,1723,1724,1725,1726,1727],{"title":1697,"_path":1698,"parent":1699,"order":290},{"title":1648,"_path":1645,"group":12,"order":245},{"title":1702,"_path":1703,"group":1704,"order":299},{"title":1706,"_path":1707,"group":1708,"order":308},{"title":1710,"_path":1711,"parent":1699,"order":272},{"title":1659,"_path":1656,"parent":1699,"order":281},{"title":4,"_path":7,"group":12,"order":13},{"title":1715,"_path":1699,"group":1716,"order":262},1790108198945]