Home Orders and PO documents PO documents and file storage

PO documents and file storage

Last updated on Oct 18, 2026

Buyers can attach their purchase order as a PDF, JPG or PNG file, up to 10 MB, when the PO document field is on. This article covers where TradeCheck stores the files, connecting your own S3 bucket, and moving files between locations.

Where files are stored

TradeCheck stores PO documents in private storage, not Shopify Files, because Shopify serves Shopify Files from a public network. Staff open a document through a download link on the order page that works for 60 minutes.

The File storage page sets where new files go:

  • TradeCheck storage: TradeCheck's private storage. Nothing to set up. This is the default.
  • Your own S3 bucket: an Amazon S3 bucket, or a service that works like S3, such as Cloudflare R2 or Backblaze B2.

Each file stays where it was uploaded. Changing where new files go doesn't move files already uploaded.

Connecting your own S3 bucket

Fill in Step 3: Connect your S3 bucket on the File storage page:

  1. Enter the Bucket name, Region (a code like ap-southeast-2), Access key ID and Secret access key.
  2. For a service other than Amazon S3, or to keep files in a folder, tick Use a custom endpoint or key prefix. Enter the service's https endpoint URL, a key prefix if you want one, and tick Use path-style URLs for MinIO or when your service says to.
  3. Press Copy policy and give the access key only the permissions in that IAM policy. The policy allows reading, writing and deleting files under the prefix, and listing the bucket.
  4. Leave Send new files to this bucket once it's connected ticked to start using the bucket straight away.
  5. Press Test and connect.

TradeCheck tests the bucket by writing, reading and deleting a small test file. A bucket only connects when the test passes. The bucket needs no CORS settings, because TradeCheck's server reads and writes every file.

TradeCheck stores the secret access key encrypted and never shows it again. The app shows the access key ID with most characters hidden.

Connection test errors

Error What to check
Access denied. Check the IAM policy allows s3:PutObject/GetObject… The access key's policy matches the copied policy
TradeCheck could write to the bucket but not delete from it… The policy allows s3:DeleteObject
That bucket doesn't exist. Check the bucket name and region. The bucket name and region
The bucket is in a different region… The region matches the bucket
The access key ID isn't recognised… The key was copied in full and is still active
The secret access key doesn't match the access key ID. The secret belongs to that access key
Couldn't reach the storage endpoint. Check the endpoint URL. The endpoint URL
This bucket is already connected The same bucket and prefix is already in the list

Moving existing files

When files sit somewhere other than where new files go, the page shows Step 2: Move existing files. Press Move files to the new location and confirm. TradeCheck copies each file, checks the copy is the same size, then deletes the original. Deleted originals can't be recovered, but you can move files back later.

  • Downloads keep working while files move, and you can leave the page.
  • The page shows how many files have moved and failed. Press Stop moving files to stop. Files already moved stay moved.
  • Files that fail stay in their original location. Press Retry to move them again.
  • Only one move runs at a time. TradeCheck doesn't send a notification when a move finishes, so check the page.

Disconnecting a bucket

Press Disconnect in Connected buckets. TradeCheck only disconnects a bucket that new files don't go to, that holds no files, and that no files are moving to. Choose another location and move the files out first.

To change a bucket's access keys, contact TradeCheck support. The app has no screen for it yet, and connecting the same bucket and prefix again shows "This bucket is already connected".

Errors buyers and staff see

  • "File must be under 10 MB" or "Upload a PDF, JPG or PNG file": the buyer's file is too large or the wrong type.
  • "The shop's file storage didn't accept the file": your bucket rejected the upload. Check the bucket's access key and policy.
  • "This file is unavailable in your storage": staff tried to download a file that's missing from your bucket, or the bucket won't let TradeCheck read it.