diff --git a/src/pages/ai/quickstart.mdx b/src/pages/ai/quickstart.mdx
index fac9d4c..3ff9295 100644
--- a/src/pages/ai/quickstart.mdx
+++ b/src/pages/ai/quickstart.mdx
@@ -11,7 +11,7 @@ Storacha can be used to dynamically store data generated by AI Agents, or for st
Coming soon: mutable and private data!
-To store data from an AI Agent you can use the JS Client, Go Client or the HTTP Bridge (language independent). Either way, your AI Agent is going to need 2 things - an identity (a DID) and a delegation allowing it to store data to a [Space](../how-to/create-space.mdx). **This should be done offline, on your development machine.**
+To store data from an AI Agent you can use the JS Client or Go Client. Either way, your AI Agent is going to need 2 things - an identity (a DID) and a delegation allowing it to store data to a [Space](../how-to/create-space.mdx). **This should be done offline, on your development machine.**
## Generate a DID
@@ -78,13 +78,12 @@ This will create a delegation with the minimum permissions required for your age
## Integrate with an AI Agent
-The JS Client, Go Client or HTTP Bridge can be integrated directly in _any_ AI Agent. In client libraries you simply need to load the agent identity (DID) and the delegation you created above.
+The JS Client or Go Client can be integrated directly in _any_ AI Agent. In client libraries you simply need to load the agent identity (DID) and the delegation you created above.
Instructions for initializing clients with an identity and delegation:
- [JS Client](../how-to/upload.mdx#bring-your-own-delegations)
- [Go Client](../go-client.mdx#load-private-key-and-proofs)
-- [HTTP Bridge](../how-to/http-bridge.mdx)
We also provide integrations for specific frameworks making it even easier to use Storacha in these environments.
diff --git a/src/pages/how-to/http-bridge.mdx b/src/pages/how-to/http-bridge.mdx
deleted file mode 100644
index 17297b6..0000000
--- a/src/pages/how-to/http-bridge.mdx
+++ /dev/null
@@ -1,705 +0,0 @@
-import { Callout } from 'nextra/components'
-
-# Use the HTTP API Bridge
-
-Our API is built around [UCAN Invocations](https://github.com/ucan-wg/invocation). This
-allows clients to verify that our service executed a submitted UCAN invocation and produced a
-given result. This gives us a flexible, interoperable, verifiable computational abstraction
-to build upon, but is not widely supported by programming languages or operating system utilities, which
-is a significant disadvantage compared to a more traditional auth-token-based HTTP API.
-
-To compensate for this, we've implemented a "bridge" that lets you use the tools you
-know and love to interact with our API in a manner that should feel familiar if you've
-used an HTTP-based API before.
-
-## Limitations
-
-The instructions below are oriented toward capabilities invoked on spaces. These include `access/delegate`,
-`space/info`, `space/allocate`, `store/add`, `store/get`, `store/remove`, `store/list`, `upload/add`,
-`upload/list`, `upload/remove` and `usage/report`.
-
-Other capabilities are invoked on other entities. They are supported by the bridge, but
-you will need to generate auth tokens that are targetted at different DIDs and may not
-be well supported by our tools - please let us know if you are interested in this functionality
-so we can better support your use cases!
-
-## Authentication and Authorization
-
-Our UCAN Invocation-based API uses public/private keypairs to identify users and UCAN Delegation
-to allow those keypairs to invoke specific capabilities. The HTTP Bridge uses the same fundamental primitives
-but confines them to two separate HTTP headers, `X-Auth-Secret` and `Authorization`, that can be generated
-by clients without interacting with our service.
-
-Details of how to generate the header values can be found in the
-[UCAN Bridge Protocol](https://github.com/storacha/specs/blob/main/w3-ucan-bridge.md) specification, but
-they can also be generated for you by the [`storacha` CLI](https://github.com/storacha/upload-service/tree/main/packages/cli):
-
-### Generating Auth Headers with the CLI
-
-If you have not already logged in and created a space with the CLI, do that first:
-
-```sh
-storacha login you@example.com
-# follow onscreen instructions
-storacha space create
-# follow onscreen instructions
-```
-
-Next, find the DID of the space you'd like to use with the bridge:
-
-```sh
-storacha space ls
-* did:key:z6Mkabc123
-```
-
-And use the `bridge generate-tokens` command to generate header values:
-
-```sh
-storacha bridge generate-tokens did:key:z6Mkabc123 --can 'store/add' --can 'upload/add' --can 'upload/list' --expiration $(date -v +24H +%s)
-```
-
-The example command above uses the `--expiration` option to specify that these headers will be
-valid for 24 hours. It uses the `--can` options to specify that the headers can be used to invoke
-`store/add`, `upload/add` or `upload/list` capabilities.
-
-If using Windows, replace single quote with double quotes. Also, replace the time to a unix format. Please reference this code sample made for Windows instead:
-
-```sh
-storacha bridge generate-tokens did:key:z6Mkabc123 --can "store/add" --can "upload/add" --can "upload/list" --expiration $((Get-Date).AddHours(24).ToUniversalTime() -UFormat %s)
-```
-
-PowerShell does not handle date arithmetic well. The best alternative is to manually calculate and pass the expiration timestamp if running into an issue.
-
-The result of `storacha bridge generate-tokens` will contain the values of the `X-Auth-Secret` and `Authorization` headers:
-
-```txt
-X-Auth-Secret header: uOGQyYzRhYWQwNmY3NtEwOTg1ZWU0NDU0NjByNTg2ZGE
-
-Authorization header: uOqJlcm9vdHOB2CpYKQABcRIgYVymlT6sxiDd45CA0f...
-```
-
-These can be used with `curl` like:
-
-```sh
-curl -X POST \
--H "X-Auth-Secret: uOGQyYzRhYWQwNmY3NtEwOTg1ZWU0NDU0NjByNTg2ZGE" \
--H "Authorization: uOqJlcm9vdHOB2CpYKQABcRIgYVymlT6sxiDd45CA0f..." \
-...
-https://up.storacha.network/bridge
-```
-
-## Listing Uploads
-
-Listing uploads in a space is one of the easiest ways to ensure the bridge is working. We'll
-give an example using the common unix utility `curl`:
-
-First, create a file named `list.json` and put the following JSON in it, replacing `did:key:z6Mkabc123`
-with the space you used to generate auth headers above:
-
-```json
-{
- "tasks": [
- [
- "upload/list",
- "did:key:z6Mkabc123",
- {}
- ]
- ]
-}
-```
-
-Next, run `curl` as follows, replacing the values of the `X-Auth-Secret` and `Authorization`
-headers with the values you generated above:
-
-```sh
-curl -X POST \
--H "X-Auth-Secret: uOGQyYzRhYWQwNmY3NtEwOTg1ZWU0NDU0NjByNTg2ZGE" \
--H "Authorization: uOqJlcm9vdHOB2CpYKQABcRIgYVymlT6sxiDd45CA0f..." \
--d @list.json \
-https://up.storacha.network/bridge
-```
-
-## Storing Files
-
-You can store individual files as big as 4GB in
-spaces on Storacha. To store larger files, see the [Sharded Uploads](#sharded-uploads) section below.
-
-To upload a file to your space you'll first need convert it to a CAR. Assuming your file is
-named `hello.txt` you can first use [`ipfs-car`](https://github.com/storacha/ipfs-car) to create a CAR:
-
-```sh
-ipfs-car pack hello.txt > hello.car
-bafybeidhkumeonuwkebh2i4fc7o7lguehauradvlk57gzake6ggjsy372a
-```
-
-
-If you already have a file available on the public IPFS network by CID, you can turn it into a CAR that can be uploaded to our service with:
-
-```sh
-ipfs dag export bafybeidhkumeonuwkebh2i4fc7o7lguehauradvlk57gzake6ggjsy372a > hello.car
-```
-
-
-
-Hang on to the `bafy...` Content ID output here! You'll need it for the "Registering Uploads" section below. Next,
-calculate the Content ID of the CAR you just created:
-
-```sh
-ipfs-car hash hello.car
-bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq
-```
-
-You'll also need to calculate the size of `hello.car` in bytes. The common utility `wc` works well:
-
-```sh
-wc -c hello.car
-161 hello.car
-```
-
-Next, create a file (in this example we'll name it `store.json`) and put the following JSON
-in it, replacing `did:key:z6Mkabc123` with the space you used to generate auth headers above:
-
-```json
-{
- "tasks": [
- [
- "store/add",
- "did:key:z6Mkabc123",
- {
- "link": { "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq" },
- "size": 161
- }
- ]
- ]
-}
-```
-
-
-**Important:** Make sure you use the CID from the output of `ipfs-car hash ` as the `link` in the file above!
-It should start with `bag...`. It is _not_ the same as the DAG root CID (which usually starts `bafy...`).
-
-
-Finally, run `curl` replacing the values of the `X-Auth-Secret` and `Authorization`
-headers with the values you generated above:
-
-```sh
-curl -X POST \
--H "X-Auth-Secret: uOGQyYzRhYWQwNmY3NtEwOTg1ZWU0NDU0NjByNTg2ZGE" \
--H "Authorization: uOqJlcm9vdHOB2CpYKQABcRIgYVymlT6sxiDd45CA0f..." \
--d @store.json \
-https://up.storacha.network/bridge
-```
-
-You'll get a response that includes a number of different fields:
-
-```json
-[
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "allocated": 161,
- "headers": {
- "content-length": "161",
- "x-amz-checksum-sha256": "5NswWHZdy73RY/nH3BQAGKfTAXKPO1BYLmJCjEx34PM="
- },
- "link": {
- "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq"
- },
- "status": "upload",
- "url": "https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq/bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM76NYBTG7%2F20240307%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240307T170854Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQC2snXc59uBD2ugjc7C9DiKP0447T7fZ0A010Ph6iDswgIgfq0fYWE4Y9FByHz%2B6mYRussCgVr9KlBV1eGd1kgA22Yq3AMIwv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw1MDU1OTUzNzQzNjEiDCjNsn%2FQBypcXnybPCqwAyGtjDvgxmoQg8IYvO4vQ5fxZw%2F69mzSB%2BJmJMl9gnMaQ7SqUuTQnamPEZHM%2BaztPTbSBFm26S9o4GcZWn5S9UCOLb4YV6sAeCC3XCMkc58RPvyehMiVf0xdN1lBCLkFDd%2BHDb0cPEOvvJbTor22rhCo9L%2FsAVZPAYBu1efwvifCMnUebFeA3Qc0lvYG9PqLtZwo2ZMeVCwXYZiwec%2FpwdobopEWve88GJtxrVyiWMuV4pO7A68cty5ukFr0aRwNHM9g2e2y%2BSymH8pS6mfWpdope%2F%2BB6JoYvKKPN%2FQMpvROl0BxNdTD%2FgNUNqKjlNfUDtV7NqaDJlTqtlTXp44%2F7AUk7yJgK9UlVmp7B30oNH3fPtNXEFBbowoVczqcDBfp%2BxDBMZRFDa37VNcoIdjEBpBTCZk5hONDpjlp%2FyGd1EPSswbQyr6nA5xwLunfF6HhWA%2B8ZMp5raiepAPm%2FS7QfpbiZGtEZ%2FoVWENmPI4HLjDKYjXRJ7i680K9cMDeFSHjHvaTYsgOh09jmL5OnKSMRbANl4bNihk%2FX7pWgxVmbV0Qj%2BQ5eDpvsYUe9i%2FTUVAyODDU5KevBjqeATdV%2Fp9WiSN1mc1%2FUxn60TYZRFAjcTm6lfdbdtEEWneexsLLj6BpoW6gUA1c73JjEXsOEGbaSfHXi%2BI6nFtlNJpKlP%2BbrFlylA2qmIvlnKJzv2ALrsARUmCH1Kl26CVFfOtnJv7VZmDSVnS9nr4mYLHLkPjIhBaF3IxWVcFR7He0CCfRv%2BYkHzTlVdzoK%2BmJkUVyofY%2B3Bt3dDkpk7No&X-Amz-Signature=1d4cbc65a8440c89eb2770b2edfe4e3fe91831856ee03d0d939911d9963337f0&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject",
- "with": "did:key:z6Mkm5qHN9g9NQSGbBfL7iGp9sexdssioT4CzyVap9ATqGqX"
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreib732osv25yuv4zs7fhr6ijywa4itb62g6o7chej2jh6ierf6o6jy"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQH53KYLjnCneSTc9nslSC1AjFCU1dtGOgwwaCopfxS1Stur+GzYpubUnvjykRbqcyUvaHutl+XVxoZuOwV2mRgY"
- }
- }
- }
-]
-```
-
-The three you care about are `p.out.ok.status`, `p.out.ok.url` and `p.out.ok.headers`. If the value of `p.out.ok.status` is `done`,
-congratulations! You're done. The file has already been uploaded to our system and you don't need to do anything else.
-
-If the value of `p.out.ok.status` is `upload` you'll need to send an HTTP `PUT` to the value of `p.out.ok.url`, passing the bytes of the CAR
-in the body of the request and including the HTTP headers in `p.out.ok.headers`:
-
-```sh
-curl -v -X PUT \
--H "content-length: 161" \
--H "x-amz-checksum-sha256: 5NswWHZdy73RY/nH3BQAGKfTAXKPO1BYLmJCjEx34PM=" \
---data-binary @hello.car \
-https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq/bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq.car\?X-Amz-Algorithm\=AWS4-HMAC-SHA256\&X-Amz-Content-Sha256\=UNSIGNED-PAYLOAD\&X-Amz-Credential\=ASIAXLN6VFMM76NYBTG7%2F20240307%2Fus-west-2%2Fs3%2Faws4_request\&X-Amz-Date\=20240307T170854Z\&X-Amz-Expires\=86400\&X-Amz-Security-Token\=IQoJb3JpZ2luX2VjEMn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQC2snXc59uBD2ugjc7C9DiKP0447T7fZ0A010Ph6iDswgIgfq0fYWE4Y9FByHz%2B6mYRussCgVr9KlBV1eGd1kgA22Yq3AMIwv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw1MDU1OTUzNzQzNjEiDCjNsn%2FQBypcXnybPCqwAyGtjDvgxmoQg8IYvO4vQ5fxZw%2F69mzSB%2BJmJMl9gnMaQ7SqUuTQnamPEZHM%2BaztPTbSBFm26S9o4GcZWn5S9UCOLb4YV6sAeCC3XCMkc58RPvyehMiVf0xdN1lBCLkFDd%2BHDb0cPEOvvJbTor22rhCo9L%2FsAVZPAYBu1efwvifCMnUebFeA3Qc0lvYG9PqLtZwo2ZMeVCwXYZiwec%2FpwdobopEWve88GJtxrVyiWMuV4pO7A68cty5ukFr0aRwNHM9g2e2y%2BSymH8pS6mfWpdope%2F%2BB6JoYvKKPN%2FQMpvROl0BxNdTD%2FgNUNqKjlNfUDtV7NqaDJlTqtlTXp44%2F7AUk7yJgK9UlVmp7B30oNH3fPtNXEFBbowoVczqcDBfp%2BxDBMZRFDa37VNcoIdjEBpBTCZk5hONDpjlp%2FyGd1EPSswbQyr6nA5xwLunfF6HhWA%2B8ZMp5raiepAPm%2FS7QfpbiZGtEZ%2FoVWENmPI4HLjDKYjXRJ7i680K9cMDeFSHjHvaTYsgOh09jmL5OnKSMRbANl4bNihk%2FX7pWgxVmbV0Qj%2BQ5eDpvsYUe9i%2FTUVAyODDU5KevBjqeATdV%2Fp9WiSN1mc1%2FUxn60TYZRFAjcTm6lfdbdtEEWneexsLLj6BpoW6gUA1c73JjEXsOEGbaSfHXi%2BI6nFtlNJpKlP%2BbrFlylA2qmIvlnKJzv2ALrsARUmCH1Kl26CVFfOtnJv7VZmDSVnS9nr4mYLHLkPjIhBaF3IxWVcFR7He0CCfRv%2BYkHzTlVdzoK%2BmJkUVyofY%2B3Bt3dDkpk7No\&X-Amz-Signature\=1d4cbc65a8440c89eb2770b2edfe4e3fe91831856ee03d0d939911d9963337f0\&X-Amz-SignedHeaders\=content-length%3Bhost%3Bx-amz-checksum-sha256\&x-id\=PutObject
-```
-
-
-Please note that your storage space has been allocated at this point - if you fail to `PUT` the file you will still be charged for storage!
-The good news is that you can store the same file as many times as you like without being charged for any additional space.
-
-
-Your bits are now on IPFS, en route to the Filecoin Network, _but they will not show up as uploads in your Storacha account!_ To
-finish "uploading" your file to Storacha you'll need to register your upload as described in the next section.
-
-## Registering Uploads
-
-To support arbitrarily large file uploads, our upload service requires large files to be sharded into multiple CARs, each
-of which is uploaded seperately according to the instructions in the "Storing Files" section above.
-
-Once the files have been uploaded, create a file (in this example we'll name it `upload.json`) with the following contents, replacing
-`did:key:z6Mkabc123` with the DID of the space you used to generate auth headers above:
-
-```json
-{
- "tasks": [
- [
- "upload/add",
- "did:key:z6Mkabc123",
- {
- "root": {
- "/": "bafybeidhkumeonuwkebh2i4fc7o7lguehauradvlk57gzake6ggjsy372a"
- },
- "shards": [
- {
- "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq"
- }
- ]
- }
- ]
- ]
-}
-```
-
-Change the `root` CID to the CID output when you ran `ipfs-car pack` above. Change the `shards` CID to the CID output
-when you ran `ipfs-car hash` above.
-
-Finally, run:
-
-```sh
-curl -X POST \
--H "X-Auth-Secret: uOGQyYzRhYWQwNmY3NtEwOTg1ZWU0NDU0NjByNTg2ZGE" \
--H "Authorization: uOqJlcm9vdHOB2CpYKQABcRIgYVymlT6sxiDd45CA0f..." \
--d @upload.json \
-https://up.storacha.network/bridge
-```
-
-being sure to again replace `X-Auth-Secret` and `Authorization` with the values generated by `storacha bridge generate-tokens`.
-
-If everything works as expected you will now see your upload when you invoke `upload/list` per the instructions in
-"Listing Uploads" above!
-
-## Batching Operations
-
-The operations described in "Storing Files" and "Registering Uploads" above can be combined into a single HTTP
-request to the bridge. To see this in action, create a file (in this example we'll name it `store-and-upload.json`)
-with the following contents, replacing `did:key:z6Mkabc123` with the DID of the space you used to generate
-auth headers above and the values of the `link`, `root` and `shards` keys with the CIDs of your upload:
-
-```json
-{
- "tasks": [
- [
- "store/add",
- "did:key:z6Mkabc123",
- {
- "link": { "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq" },
- "size": 161
- }
- ],
- [
- "upload/add",
- "did:key:z6Mkabc123",
- {
- "root": {
- "/": "bafybeidhkumeonuwkebh2i4fc7o7lguehauradvlk57gzake6ggjsy372a"
- },
- "shards": [
- {
- "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq"
- }
- ]
- }
- ]
- ]
-}
-```
-
-And run:
-
-```sh
-curl -X POST \
--H "X-Auth-Secret: uOGQyYzRhYWQwNmY3NtEwOTg1ZWU0NDU0NjByNTg2ZGE" \
--H "Authorization: uOqJlcm9vdHOB2CpYKQABcRIgYVymlT6sxiDd45CA0f..." \
--d @store-and-upload.json \
-https://up.storacha.network/bridge
-```
-
-being sure to again replace `X-Auth-Secret` and `Authorization` with the values generated by `storacha bridge generate-tokens`.
-
-You'll get a result that looks like this:
-
-```json
-[
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "allocated": 161,
- "headers": {
- "content-length": "161",
- "x-amz-checksum-sha256": "5NswWHZdy73RY/nH3BQAGKfTAXKPO1BYLmJCjEx34PM="
- },
- "link": {
- "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq"
- },
- "status": "upload",
- "url": "https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq/bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM76NYBTG7%2F20240307%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240307T170854Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQC2snXc59uBD2ugjc7C9DiKP0447T7fZ0A010Ph6iDswgIgfq0fYWE4Y9FByHz%2B6mYRussCgVr9KlBV1eGd1kgA22Yq3AMIwv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw1MDU1OTUzNzQzNjEiDCjNsn%2FQBypcXnybPCqwAyGtjDvgxmoQg8IYvO4vQ5fxZw%2F69mzSB%2BJmJMl9gnMaQ7SqUuTQnamPEZHM%2BaztPTbSBFm26S9o4GcZWn5S9UCOLb4YV6sAeCC3XCMkc58RPvyehMiVf0xdN1lBCLkFDd%2BHDb0cPEOvvJbTor22rhCo9L%2FsAVZPAYBu1efwvifCMnUebFeA3Qc0lvYG9PqLtZwo2ZMeVCwXYZiwec%2FpwdobopEWve88GJtxrVyiWMuV4pO7A68cty5ukFr0aRwNHM9g2e2y%2BSymH8pS6mfWpdope%2F%2BB6JoYvKKPN%2FQMpvROl0BxNdTD%2FgNUNqKjlNfUDtV7NqaDJlTqtlTXp44%2F7AUk7yJgK9UlVmp7B30oNH3fPtNXEFBbowoVczqcDBfp%2BxDBMZRFDa37VNcoIdjEBpBTCZk5hONDpjlp%2FyGd1EPSswbQyr6nA5xwLunfF6HhWA%2B8ZMp5raiepAPm%2FS7QfpbiZGtEZ%2FoVWENmPI4HLjDKYjXRJ7i680K9cMDeFSHjHvaTYsgOh09jmL5OnKSMRbANl4bNihk%2FX7pWgxVmbV0Qj%2BQ5eDpvsYUe9i%2FTUVAyODDU5KevBjqeATdV%2Fp9WiSN1mc1%2FUxn60TYZRFAjcTm6lfdbdtEEWneexsLLj6BpoW6gUA1c73JjEXsOEGbaSfHXi%2BI6nFtlNJpKlP%2BbrFlylA2qmIvlnKJzv2ALrsARUmCH1Kl26CVFfOtnJv7VZmDSVnS9nr4mYLHLkPjIhBaF3IxWVcFR7He0CCfRv%2BYkHzTlVdzoK%2BmJkUVyofY%2B3Bt3dDkpk7No&X-Amz-Signature=1d4cbc65a8440c89eb2770b2edfe4e3fe91831856ee03d0d939911d9963337f0&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject",
- "with": "did:key:z6Mkabc123"
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreiclycv7vdfutbtakytkbvcpx2ontlp3fusfb7niugvy5a6kawnhk4"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQDosaCizSSLXXm55dAeuDACNw2H9/JoUa6oLkLY7mv6TXeW+Z0xJouYj1MGf6LpHn756IW2NprqXq4c20EjlOwM"
- }
- }
- },
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "root": {
- "/": "bafybeidhkumeonuwkebh2i4fc7o7lguehauradvlk57gzake6ggjsy372a"
- },
- "shards": [
- {
- "/": "bagbaiera4tntawdwlxf33uld7hd5yfaadct5galsr45vawbomjbiytdx4dzq"
- },
- {
- "/": "bagbaieraw4kz73gtuttgxlckdby7fezy4o5hdfspcrl7nqxsh3ultzse2q2a"
- }
- ]
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreihobt6uxochgcmfs5bhetynrccrqsuipwp5cy5xxclvqgzw7qsmui"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQIa1JFOzEWHHfUZQJqRhZzElISfhq4b9Xqca0TgjX+3N7SLrYTB6SN/2GdLSgkRuIKZivB+tSdG4s/+Fvh1CxAQ"
- }
- }
- }
-]
-```
-
-Remember that if the `status` field of the `store/add` result is `upload` you will then need to `PUT` your file to the
-to the given URL with the given headers.
-
-## Sharded Uploads
-
-If you'd like to store a file larger than 5GB you'll need to shard it into smaller CARs before storing. We don't
-prescribe any particular sharding algorithm - you'll need to:
-
-1. read the input CAR
-2. write the first CAR file header
-3. write blocks until the first CAR hits your limit (a number lower than 5GB)
-4. write a new CAR file header for the second CAR
-5. write blocks until the second CAR hits your limit
-6. repeat until end of blocks
-
-If you're implementing this yourself it may be helpful to look
-into [our JavaScript implementation](https://github.com/storacha/upload-service/blob/d6978d7ab299be76987c6533d18e6857f6998fe6/packages/upload-client/src/index.js#L38).
-We provide an example here using the [`carbites-cli`](https://www.npmjs.com/package/carbites-cli) utility:
-
-First we'll create an absolutely gigantic file:
-
-```sh
-printf -- 'this is an absolutely gigantic file created by travis%.0s' {1..1000000} > big.txt
-ipfs-car pack big.txt > big.car
-bafybeiao5ir3xsp4vhg46b2cjvnl4ucmg5wxrdpy4cypolwexitmpz7hwu
-```
-
-We'll save the CID `ipfs-car` outputs so we can use it in our `store/add` invocation later.
-
-Next we'll use `carbites` to split this file. We are using the `50B` option to split into 50 byte
-chunks - you'll probably want to use something much larger like `100MB`:
-
-```sh
-carbites split big.car --size 25MB
-```
-
-You should now see three files, `big-0.car`, `big-1.car` and `big-2.car`. Calculate the CID and size of each one:
-
-```sh
-wc -c big-*
- 26218318 big-0.car
- 26227074 big-1.car
- 573086 big-2.car
- 53018478 total
-ipfs-car hash big-0.car
-bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq
-ipfs-car hash big-1.car
-bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua
-ipfs-car hash big-2.car
-bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa
-```
-
-Next, create a file (in this example we'll name it `store-and-upload.json`) and put the following JSON
-in it. The `link` and `size` in each `store/add` should match the CID and size calculated above, and
-each `link` should also appear in the `shards` array of the `upload/add` call. The `root` CID in the `upload/add`
-should be the CID output by `ipfs-car pack` above. Be sure to update the space DID `did:key:z6Mkabc123` to match
-the space you used when you generated auth tokens!
-
-```json
-{
- "tasks": [
- [
- "store/add",
- "did:key:z6Mkabc123",
- {
- "link": {
- "/": "bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq"
- },
- "size": 109
- }
- ],
- [
- "store/add",
- "did:key:z6Mkabc123",
- {
- "link": {
- "/": "bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua"
- },
- "size": 118
- }
- ],
- [
- "store/add",
- "did:key:z6Mkabc123",
- {
- "link": {
- "/": "bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa"
- },
- "size": 26
- }
- ],
- [
- "upload/add",
- "did:key:z6Mkabc123",
- {
- "root": {
- "/": "bafybeiao5ir3xsp4vhg46b2cjvnl4ucmg5wxrdpy4cypolwexitmpz7hwu"
- },
- "shards": [
- {
- "/": "bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq"
- },
- {
- "/": "bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua"
- },
- {
- "/": "bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa"
- }
- ]
- }
- ]
- ]
-}
-```
-
-Once you receive a response, you'll need to `PUT` each of the cars to their respective upload URLs. Given this result:
-
-```json
-[
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "allocated": 0,
- "headers": {
- "content-length": "26218318",
- "x-amz-checksum-sha256": "pyGILvsMgmI+NuWyG4uC65YEgkEQxQVsBJyApBMWL4U="
- },
- "link": {
- "/": "bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq"
- },
- "status": "upload",
- "url": "https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq/bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM665ZYAHR%2F20240314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240314T175533Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaCXVzLXdlc3QtMiJHMEUCIQCUXvGoqROkM7v%2FLVCivP8q5dqoiRe4dbXtqTCV3MP9TAIgKGTZvwjmQ365IcVthNaMXHytEQmm74ABJmUKxFSon14q0wMIehABGgw1MDU1OTUzNzQzNjEiDD3M45t0320FZ6VOriqwA422dYlN9z%2F89MSJjGZQitkOPlF8wdp4t4kU3I4wvjyThjkfSGeyBV20XS%2FfsF8Dcm1L3iuZwUwhMZImvX406MZDzEYLKlyejvoDPQLpGOsopDfLOygdFUUQUvsbZPXvgJwyZp5r5YSUUUEOhmafdGHztdQVzqkiKaQ%2BUrXA1KAHb7qEXlM3NvPAyDNO0GJD8cVDUlygg%2Bw6mZodsjeIt%2B250MRvDU0DL%2BRPIG1OhCM81GMgnkmGpyTh4pSuZPPUqINRm7qKCssk0Fg84isHOCMa7OEonwoAccIHBS%2BQB8XtuvQ%2FQWDZeQUYxFFhvXKQu5tze9ZOHxFC%2FOAvmpoAQklXXzWeySKplID5AihmbCiNqisqqjQ9MuTuJmNfHHEIqFfKx00Rdxkl42IWNp8gtzyjTSjytWbEd%2Bm6yStClUvFo3i4pwn3zvCgZ3aV5NjWuOufQpAnU7Tb7lK02Q0JikIOz5hHHtOFLh5%2F8ldnKGaBp0qs9Nj1E2dEFU%2B%2BuyZ3bx6l1MrVknVhPsWUqCoEmT9me%2BJXKGFUV0hPjDKJNrPEtMLDbFoaW3yIh3hwVR9MWzCX3syvBjqeAZDeWPQKO8Xv%2B%2Fti9cMOU6R7EtRbJ1hHmz95u9SJLKD6E%2F19RQnPFj5f4TcDyoqt4UT6p8fRcK9xkAVg2e1qamlLmtEMEhgavD6YgqSLbEPpRe9CitthIZ9jyPvZYtxccY%2BhUoQSeSAQ11JHTRtYzsjzOs%2BcgXTSDRAaj6ZnCcLpEYgRt7hRO%2BqIhDdUNxbUenM1edJhEW%2FyKBn%2BEfvm&X-Amz-Signature=28ad621b458a783fe69bf50bea52b8cfd9421127873e516bf237863e74c124dd&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject",
- "with": "did:key:z6Mkabc123"
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreifl635eqromltu6asqekh3gmdxiiasubcuvpc37j5ticopvjwmeqi"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQJS7nJycSU2r7941+5dbhqCuGbHsm2GXKbRggayUDxpfukNwJSyNR1GydX6pgqhfhLFCutlx3yKPOUH+/eoxtwg"
- }
- }
- },
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "allocated": 0,
- "headers": {
- "content-length": "26227074",
- "x-amz-checksum-sha256": "8I3270F1+ziIKC6r0M3ZqHJNRN1l9CNYpf+5vMXxJSg="
- },
- "link": {
- "/": "bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua"
- },
- "status": "upload",
- "url": "https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua/bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM665ZYAHR%2F20240314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240314T175533Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaCXVzLXdlc3QtMiJHMEUCIQCUXvGoqROkM7v%2FLVCivP8q5dqoiRe4dbXtqTCV3MP9TAIgKGTZvwjmQ365IcVthNaMXHytEQmm74ABJmUKxFSon14q0wMIehABGgw1MDU1OTUzNzQzNjEiDD3M45t0320FZ6VOriqwA422dYlN9z%2F89MSJjGZQitkOPlF8wdp4t4kU3I4wvjyThjkfSGeyBV20XS%2FfsF8Dcm1L3iuZwUwhMZImvX406MZDzEYLKlyejvoDPQLpGOsopDfLOygdFUUQUvsbZPXvgJwyZp5r5YSUUUEOhmafdGHztdQVzqkiKaQ%2BUrXA1KAHb7qEXlM3NvPAyDNO0GJD8cVDUlygg%2Bw6mZodsjeIt%2B250MRvDU0DL%2BRPIG1OhCM81GMgnkmGpyTh4pSuZPPUqINRm7qKCssk0Fg84isHOCMa7OEonwoAccIHBS%2BQB8XtuvQ%2FQWDZeQUYxFFhvXKQu5tze9ZOHxFC%2FOAvmpoAQklXXzWeySKplID5AihmbCiNqisqqjQ9MuTuJmNfHHEIqFfKx00Rdxkl42IWNp8gtzyjTSjytWbEd%2Bm6yStClUvFo3i4pwn3zvCgZ3aV5NjWuOufQpAnU7Tb7lK02Q0JikIOz5hHHtOFLh5%2F8ldnKGaBp0qs9Nj1E2dEFU%2B%2BuyZ3bx6l1MrVknVhPsWUqCoEmT9me%2BJXKGFUV0hPjDKJNrPEtMLDbFoaW3yIh3hwVR9MWzCX3syvBjqeAZDeWPQKO8Xv%2B%2Fti9cMOU6R7EtRbJ1hHmz95u9SJLKD6E%2F19RQnPFj5f4TcDyoqt4UT6p8fRcK9xkAVg2e1qamlLmtEMEhgavD6YgqSLbEPpRe9CitthIZ9jyPvZYtxccY%2BhUoQSeSAQ11JHTRtYzsjzOs%2BcgXTSDRAaj6ZnCcLpEYgRt7hRO%2BqIhDdUNxbUenM1edJhEW%2FyKBn%2BEfvm&X-Amz-Signature=f47614b5ec4751ec5b46617d172f86daf91bda5a8c15b771e7fb488d15394a4e&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject",
- "with": "did:key:z6Mkabc123"
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreihskuuxwtluxs2pndfjqr56jqlwfgpfoga7teitmbsbgzk466wbwa"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQI6K8xBybt+lthsCEfMjxbql7lml8XUeUeSxZsnF2duxuK7YKjEcETTr3gmPOARP0ulgr1yDOvWbUcKmumyIWQo"
- }
- }
- },
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "allocated": 0,
- "headers": {
- "content-length": "573086",
- "x-amz-checksum-sha256": "65jEDy7v85ByUoX06Jka6YTSyoKUcabZk9KHvuggolw="
- },
- "link": {
- "/": "bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa"
- },
- "status": "upload",
- "url": "https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa/bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM665ZYAHR%2F20240314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240314T175533Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaCXVzLXdlc3QtMiJHMEUCIQCUXvGoqROkM7v%2FLVCivP8q5dqoiRe4dbXtqTCV3MP9TAIgKGTZvwjmQ365IcVthNaMXHytEQmm74ABJmUKxFSon14q0wMIehABGgw1MDU1OTUzNzQzNjEiDD3M45t0320FZ6VOriqwA422dYlN9z%2F89MSJjGZQitkOPlF8wdp4t4kU3I4wvjyThjkfSGeyBV20XS%2FfsF8Dcm1L3iuZwUwhMZImvX406MZDzEYLKlyejvoDPQLpGOsopDfLOygdFUUQUvsbZPXvgJwyZp5r5YSUUUEOhmafdGHztdQVzqkiKaQ%2BUrXA1KAHb7qEXlM3NvPAyDNO0GJD8cVDUlygg%2Bw6mZodsjeIt%2B250MRvDU0DL%2BRPIG1OhCM81GMgnkmGpyTh4pSuZPPUqINRm7qKCssk0Fg84isHOCMa7OEonwoAccIHBS%2BQB8XtuvQ%2FQWDZeQUYxFFhvXKQu5tze9ZOHxFC%2FOAvmpoAQklXXzWeySKplID5AihmbCiNqisqqjQ9MuTuJmNfHHEIqFfKx00Rdxkl42IWNp8gtzyjTSjytWbEd%2Bm6yStClUvFo3i4pwn3zvCgZ3aV5NjWuOufQpAnU7Tb7lK02Q0JikIOz5hHHtOFLh5%2F8ldnKGaBp0qs9Nj1E2dEFU%2B%2BuyZ3bx6l1MrVknVhPsWUqCoEmT9me%2BJXKGFUV0hPjDKJNrPEtMLDbFoaW3yIh3hwVR9MWzCX3syvBjqeAZDeWPQKO8Xv%2B%2Fti9cMOU6R7EtRbJ1hHmz95u9SJLKD6E%2F19RQnPFj5f4TcDyoqt4UT6p8fRcK9xkAVg2e1qamlLmtEMEhgavD6YgqSLbEPpRe9CitthIZ9jyPvZYtxccY%2BhUoQSeSAQ11JHTRtYzsjzOs%2BcgXTSDRAaj6ZnCcLpEYgRt7hRO%2BqIhDdUNxbUenM1edJhEW%2FyKBn%2BEfvm&X-Amz-Signature=5792f7d2847ab963c54e34c44c7f821ccded0baf951d2be262be1a2e9c59101f&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject",
- "with": "did:key:z6Mkabc123"
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreidf7aj7tmrf54rkh2hrartvbbsg5ojbg2dmhnluvzrliyzq4o2cdi"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQBiyN3Nxpc+upjyfyHABtfscOjECEE9jXTG9H4R2/jOjlJrR39VPv2IkBFIBtbg0hPHs8I/XGftG1dl+iHur4wo"
- }
- }
- },
- {
- "p": {
- "fx": {
- "fork": []
- },
- "iss": "did:web:storacha.network",
- "meta": {},
- "out": {
- "ok": {
- "root": {
- "/": "bafybeiao5ir3xsp4vhg46b2cjvnl4ucmg5wxrdpy4cypolwexitmpz7hwu"
- },
- "shards": [
- {
- "/": "bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa"
- },
- {
- "/": "bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua"
- },
- {
- "/": "bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq"
- }
- ]
- }
- },
- "prf": [],
- "ran": {
- "/": "bafyreigl6rzvfcba47bj4eapo6csalvrmweq67dhejqmmoqw45rlemitnq"
- }
- },
- "s": {
- "/": {
- "bytes": "7aEDQBypjHmf0ROjk7VzXM3FDtEybD8c2ykGXkrBMjzXyNP4koXC9XWRKaeKYSTb8JK+8jpIDHnW/n0gMjEUihIgsA8"
- }
- }
- }
-]
-```
-
-You'll need to run the following `curl` commands:
-
-```sh
-curl -X PUT \
--H "content-length: 26218318" \
--H "x-amz-checksum-sha256: pyGILvsMgmI+NuWyG4uC65YEgkEQxQVsBJyApBMWL4U=" \
--H "content-type: application/vnd.ipld.car" \
---data-binary @big-0.car \
-https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq/bagbaierau4qyqlx3bsbgeprw4wzbxc4c5olajasbcdcqk3aetsakieywf6cq.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM665ZYAHR%2F20240314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240314T175533Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaCXVzLXdlc3QtMiJHMEUCIQCUXvGoqROkM7v%2FLVCivP8q5dqoiRe4dbXtqTCV3MP9TAIgKGTZvwjmQ365IcVthNaMXHytEQmm74ABJmUKxFSon14q0wMIehABGgw1MDU1OTUzNzQzNjEiDD3M45t0320FZ6VOriqwA422dYlN9z%2F89MSJjGZQitkOPlF8wdp4t4kU3I4wvjyThjkfSGeyBV20XS%2FfsF8Dcm1L3iuZwUwhMZImvX406MZDzEYLKlyejvoDPQLpGOsopDfLOygdFUUQUvsbZPXvgJwyZp5r5YSUUUEOhmafdGHztdQVzqkiKaQ%2BUrXA1KAHb7qEXlM3NvPAyDNO0GJD8cVDUlygg%2Bw6mZodsjeIt%2B250MRvDU0DL%2BRPIG1OhCM81GMgnkmGpyTh4pSuZPPUqINRm7qKCssk0Fg84isHOCMa7OEonwoAccIHBS%2BQB8XtuvQ%2FQWDZeQUYxFFhvXKQu5tze9ZOHxFC%2FOAvmpoAQklXXzWeySKplID5AihmbCiNqisqqjQ9MuTuJmNfHHEIqFfKx00Rdxkl42IWNp8gtzyjTSjytWbEd%2Bm6yStClUvFo3i4pwn3zvCgZ3aV5NjWuOufQpAnU7Tb7lK02Q0JikIOz5hHHtOFLh5%2F8ldnKGaBp0qs9Nj1E2dEFU%2B%2BuyZ3bx6l1MrVknVhPsWUqCoEmT9me%2BJXKGFUV0hPjDKJNrPEtMLDbFoaW3yIh3hwVR9MWzCX3syvBjqeAZDeWPQKO8Xv%2B%2Fti9cMOU6R7EtRbJ1hHmz95u9SJLKD6E%2F19RQnPFj5f4TcDyoqt4UT6p8fRcK9xkAVg2e1qamlLmtEMEhgavD6YgqSLbEPpRe9CitthIZ9jyPvZYtxccY%2BhUoQSeSAQ11JHTRtYzsjzOs%2BcgXTSDRAaj6ZnCcLpEYgRt7hRO%2BqIhDdUNxbUenM1edJhEW%2FyKBn%2BEfvm&X-Amz-Signature=28ad621b458a783fe69bf50bea52b8cfd9421127873e516bf237863e74c124dd&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject
-
-curl -X PUT \
--H "content-length: 26227074" \
--H "x-amz-checksum-sha256: 8I3270F1+ziIKC6r0M3ZqHJNRN1l9CNYpf+5vMXxJSg=" \
--H "content-type: application/vnd.ipld.car" \
---data-binary @big-1.car \
-https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua/bagbaiera6cg7n32box5trcbif2v5btozvbze2rg5mx2cgwff7643zrpreuua.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM665ZYAHR%2F20240314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240314T175533Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaCXVzLXdlc3QtMiJHMEUCIQCUXvGoqROkM7v%2FLVCivP8q5dqoiRe4dbXtqTCV3MP9TAIgKGTZvwjmQ365IcVthNaMXHytEQmm74ABJmUKxFSon14q0wMIehABGgw1MDU1OTUzNzQzNjEiDD3M45t0320FZ6VOriqwA422dYlN9z%2F89MSJjGZQitkOPlF8wdp4t4kU3I4wvjyThjkfSGeyBV20XS%2FfsF8Dcm1L3iuZwUwhMZImvX406MZDzEYLKlyejvoDPQLpGOsopDfLOygdFUUQUvsbZPXvgJwyZp5r5YSUUUEOhmafdGHztdQVzqkiKaQ%2BUrXA1KAHb7qEXlM3NvPAyDNO0GJD8cVDUlygg%2Bw6mZodsjeIt%2B250MRvDU0DL%2BRPIG1OhCM81GMgnkmGpyTh4pSuZPPUqINRm7qKCssk0Fg84isHOCMa7OEonwoAccIHBS%2BQB8XtuvQ%2FQWDZeQUYxFFhvXKQu5tze9ZOHxFC%2FOAvmpoAQklXXzWeySKplID5AihmbCiNqisqqjQ9MuTuJmNfHHEIqFfKx00Rdxkl42IWNp8gtzyjTSjytWbEd%2Bm6yStClUvFo3i4pwn3zvCgZ3aV5NjWuOufQpAnU7Tb7lK02Q0JikIOz5hHHtOFLh5%2F8ldnKGaBp0qs9Nj1E2dEFU%2B%2BuyZ3bx6l1MrVknVhPsWUqCoEmT9me%2BJXKGFUV0hPjDKJNrPEtMLDbFoaW3yIh3hwVR9MWzCX3syvBjqeAZDeWPQKO8Xv%2B%2Fti9cMOU6R7EtRbJ1hHmz95u9SJLKD6E%2F19RQnPFj5f4TcDyoqt4UT6p8fRcK9xkAVg2e1qamlLmtEMEhgavD6YgqSLbEPpRe9CitthIZ9jyPvZYtxccY%2BhUoQSeSAQ11JHTRtYzsjzOs%2BcgXTSDRAaj6ZnCcLpEYgRt7hRO%2BqIhDdUNxbUenM1edJhEW%2FyKBn%2BEfvm&X-Amz-Signature=f47614b5ec4751ec5b46617d172f86daf91bda5a8c15b771e7fb488d15394a4e&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject
-
-curl -X PUT \
--H "content-length: 573086" \
--H "x-amz-checksum-sha256: 65jEDy7v85ByUoX06Jka6YTSyoKUcabZk9KHvuggolw=" \
--H "content-type: application/vnd.ipld.car" \
---data-binary @big-2.car \
-https://carpark-prod-0.s3.us-west-2.amazonaws.com/bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa/bagbaiera5ommidzo57zza4ssqx2orgi25gcnfsucsry2nwmt2kd352baujoa.car?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAXLN6VFMM665ZYAHR%2F20240314%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240314T175533Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHEaCXVzLXdlc3QtMiJHMEUCIQCUXvGoqROkM7v%2FLVCivP8q5dqoiRe4dbXtqTCV3MP9TAIgKGTZvwjmQ365IcVthNaMXHytEQmm74ABJmUKxFSon14q0wMIehABGgw1MDU1OTUzNzQzNjEiDD3M45t0320FZ6VOriqwA422dYlN9z%2F89MSJjGZQitkOPlF8wdp4t4kU3I4wvjyThjkfSGeyBV20XS%2FfsF8Dcm1L3iuZwUwhMZImvX406MZDzEYLKlyejvoDPQLpGOsopDfLOygdFUUQUvsbZPXvgJwyZp5r5YSUUUEOhmafdGHztdQVzqkiKaQ%2BUrXA1KAHb7qEXlM3NvPAyDNO0GJD8cVDUlygg%2Bw6mZodsjeIt%2B250MRvDU0DL%2BRPIG1OhCM81GMgnkmGpyTh4pSuZPPUqINRm7qKCssk0Fg84isHOCMa7OEonwoAccIHBS%2BQB8XtuvQ%2FQWDZeQUYxFFhvXKQu5tze9ZOHxFC%2FOAvmpoAQklXXzWeySKplID5AihmbCiNqisqqjQ9MuTuJmNfHHEIqFfKx00Rdxkl42IWNp8gtzyjTSjytWbEd%2Bm6yStClUvFo3i4pwn3zvCgZ3aV5NjWuOufQpAnU7Tb7lK02Q0JikIOz5hHHtOFLh5%2F8ldnKGaBp0qs9Nj1E2dEFU%2B%2BuyZ3bx6l1MrVknVhPsWUqCoEmT9me%2BJXKGFUV0hPjDKJNrPEtMLDbFoaW3yIh3hwVR9MWzCX3syvBjqeAZDeWPQKO8Xv%2B%2Fti9cMOU6R7EtRbJ1hHmz95u9SJLKD6E%2F19RQnPFj5f4TcDyoqt4UT6p8fRcK9xkAVg2e1qamlLmtEMEhgavD6YgqSLbEPpRe9CitthIZ9jyPvZYtxccY%2BhUoQSeSAQ11JHTRtYzsjzOs%2BcgXTSDRAaj6ZnCcLpEYgRt7hRO%2BqIhDdUNxbUenM1edJhEW%2FyKBn%2BEfvm&X-Amz-Signature=5792f7d2847ab963c54e34c44c7f821ccded0baf951d2be262be1a2e9c59101f&X-Amz-SignedHeaders=content-length%3Bhost%3Bx-amz-checksum-sha256&x-id=PutObject
-```
-
-Once this is all done you'll be able to see your upload in `storacha ls` and through the gateway, e.g. at https://bafybeicq2urqdqum3ykblswqzzxf6wpy3mcbr6jg52ai2zlhds4l7ho5wa.ipfs.storacha.link