> ## Documentation Index
> Fetch the complete documentation index at: https://docs.storagesync.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Download / Get file

> Download / Get file from StorageSync

This step assumes you have followed the [installation](/sdks/typescript/installation) steps and initialized the client.

### Presigned Urls

If you are looking for a way to allow external users to download objects from your bucket, you should check out [Get object with presigned url](/sdks/typescript/presigned-url)

## Get an Object using the StorageSyncClient

The example belows shows how we would get an object/file called list-of-cats.txt and save it to a file called list-of-cats.txt.

```ts index.ts theme={null}
import { StorageSyncClient } from "@storagesync/client";
import fs from "fs";

const client = new StorageSyncClient({
  apiKey: "<YOUR_API_KEY>",
  bucket: "<YOUR_BUCKET_NAME>",
});

const response = await client.download("list-of-cats.txt");
// The response will be a standard fetch response object
// with the body being the data for the object.

const data = await response.text();

fs.writeFileSync("list-of-cats.txt", data);

// Now there should be a file called list-of-cats.txt in the current directory.
```

## Examples

Below is an example of how we would use streams to download a big file without having to load it all into memory.

```ts index.ts theme={null}
async function downloadBigFile() {
  // Fetch the file from StorageSync
  const res = await client.download("big-file.dmg");
  if (res.status === 200) {
    // File was was found and we can start streaming it.

    // Create a write stream to a file on our local machine.
    const writer = fs.createWriteStream("./big-file.dmg");

    // Get the readable stream from the response.
    const reader = res.body.getReader();
    if (reader) {
      while (true) {
        // Read from the stream.
        const { done, value } = await reader.read();
        if (done || !value) {
          reader.releaseLock();
          break;
        }
        writer.write(value);
      }
    }
    writer.close();
  }
}
```

For more examples checkout out our Examples/Guides section
