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

# Photo storage

> Connect the cloud storage where your photos live, so photo feeds can fill your galleries from it.

Photo storage connects your site to the cloud storage where your photos are kept. Once it's connected, a [photo feed](https://docs.fetchski-attract.com/guides/content/photo-feeds.md) can pull a fresh set of photos from it on a schedule and fill a gallery for you.

&#x20;**Who can do this:** Admins and Owners.

## Before you start

* You need a storage bucket that holds your photos. A bucket is a storage space you rent from a cloud storage service. The service must be Amazon S3 or one that works like it (it says "S3-compatible"), such as Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces or MinIO. A shared folder in Google Drive, Dropbox or iCloud won't work.
* In your storage service, create an access key that can **only read** that bucket: it must be able to list the bucket's files and read them. Feeds never change or delete anything in your storage, so they don't need more. If someone else manages your storage, ask them for a read-only key with those two permissions.
* Have these at hand: the bucket's name, its region, the access key ID and the secret access key. For services other than Amazon S3, you also need the service's address, which its own docs give you.

## Connect your storage

**1. Open Connections**

In the toolbar, choose **Connections**. The toolbar is the bar across the top of your site once you're signed in; see [The toolbar](https://docs.fetchski-attract.com/guides/get-started/toolbar-and-command-palette.md#the-toolbar). Or open the command palette (⌘K, or Ctrl+K on Windows) and choose **Connections**. The shortcut is T then E (press T, let go, then press E, while you're not typing in a box; see [Keyboard shortcuts](https://docs.fetchski-attract.com/guides/get-started/toolbar-and-command-palette.md#keyboard-shortcuts)).

**2. Open the card**

Under **Social and photos**, choose **Photo storage**.

![The Connections window open on the Photo storage card: the card title and purpose line "Cloud storage buckets your Photo Feeds read photos from.", the Not set up badge.](https://mintcdn.com/fetchski-attract-api/tIdeo2aKESm5opj4/images/cms/guides/connections/photo-storage/guides-connections-photo-storage-card-light.png?fit=max\&auto=format\&n=tIdeo2aKESm5opj4\&q=85\&s=fee4319da7cb88879a033cb9ef6c7d40)

The Photo storage card, under Social and photos.

**3. Add a connection**

Choose **Edit Photo source connections**, then add an item.

**4. Fill it in**

* **Name**: what to call this storage, such as "Daily photo uploads". You pick it by this name when you build a feed.
* **Provider**: **Amazon S3 / S3-compatible**. It covers every service listed above.
* **Bucket name**: the bucket that holds your photos.
* **Region**: the bucket's region. It starts as us-east-1. For Cloudflare R2, type "auto".
* The address field below **Region**: your storage service's own address, not a photo's link. Leave it empty for Amazon S3. For any other service, paste the address its docs give you. For Cloudflare R2 it looks like `https://<account>.r2.cloudflarestorage.com`.
* **Access key ID** and **Secret access key**: the read-only key you created.
* **Use path-style URLs**: a compatibility setting that only some services need. Leave it off for Amazon S3 and Cloudflare R2. Turn it on only if your service's setup docs say to, as MinIO's do.

![One photo source connection filled in: Name "Daily photo uploads", Provider Amazon S3 / S3-compatible, Bucket name "parkers-daily-photos", Region us-west-2.](https://mintcdn.com/fetchski-attract-api/MsE85fjBwOCKqNGh/images/cms/guides/connections/photo-storage/guides-connections-photo-storage-form-light.png?fit=max\&auto=format\&n=MsE85fjBwOCKqNGh\&q=85\&s=d8ab112d5770f4a858bed07cf4fb139d)

One connection per bucket. The key only needs to read.

**5. Save**

Choose **Save** in the list window to keep the list, then choose **Save** at the top right of the Connections window to save everything. The card's badge turns to **Connected** and shows how many buckets are connected.

![The Photo storage card after saving: the storage service's logo, the Connected badge, the line "1 bucket", and the Edit Photo source connections button.](https://mintcdn.com/fetchski-attract-api/tIdeo2aKESm5opj4/images/cms/guides/connections/photo-storage/guides-connections-photo-storage-connected-light.png?fit=max\&auto=format\&n=tIdeo2aKESm5opj4\&q=85\&s=868a7c6df82f2ef3c37b1aedc4325403)

Connected, with one bucket.

## What happens next

Your storage is ready for feeds. Build one in the **Photo Feeds** list and choose this connection as its **Photo source connection**. See [Photo feeds](https://docs.fetchski-attract.com/guides/content/photo-feeds.md).

Anyone with the **Refresh photo feeds** permission can then refresh a feed by hand. Editors, Admins and Owners have it.

## Good to know

* **Your secret stays secret.** After you save, the **Secret access key** shows as dots marked "Saved and encrypted". Nobody can read it again, you included. Choose **Replace** to change it, or **Remove** to clear it.
* **Saving without touching the secret keeps it.** You can change the name or region and save. The stored secret stays as it was.
* **You can connect several buckets.** Add one connection per bucket, even from different services. Each feed picks its own, so each gallery can draw from a different place.
* **Changing a key takes effect on the next refresh.** Feeds look up the connection each time they refresh, so you don't need to touch the feeds.
* **Your originals are never changed.** Feeds only read from your storage. They copy photos into your media library, resized and with location and camera details removed.

## Troubleshooting

> [accordion] A feed says the refresh did not complete
>
> The feed couldn't reach your storage. Open the feed's **Status** tab and read **Last message**. Most often one of these is wrong:
>
> * the **Bucket name** or **Region**;
> * the address field (empty for Amazon S3, filled for every other service);
> * the access key, or what it's allowed to read. It must be able to list the bucket and read its files.
>
> Fix the connection here, choose **Save**, then refresh the feed again.

> [accordion] I don't see Connections in the toolbar
>
> Connections is for Admins and Owners. If you need a storage connection, ask one of them to add it for you.

> [accordion] My storage service isn't listed
>
> **Amazon S3 / S3-compatible** covers any storage that works like Amazon S3. Most cloud storage services do. Check your service's docs for "S3-compatible" and the address to use. If yours doesn't offer it, contact Fetchski Support.

## Related

> [card] [Photo feeds](https://docs.fetchski-attract.com/guides/content/photo-feeds.md)
>
> build a feed that reads from this storage.

> [card] [Gallery](https://docs.fetchski-attract.com/guides/sections/gallery.md)
>
> show a feed on a page.

> [card] [Media library folders](https://docs.fetchski-attract.com/guides/media/folders.md)
>
> where feed photos land.

> [card] [Connections](https://docs.fetchski-attract.com/guides/connections/index.md)
>
> every outside service in one place.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.