Need help — Asset Storage on Frappe Cloud

Hi everyone,

We migrated from Drupal to Frappe Cloud and have around 18GB of media files (images, PDFs, docs), that are currently stored inside our custom app’s public folder, referenced across 25+ custom doctypes.

What is the best way to handle this on Frappe Cloud?

Any advice from those who have handled large asset migrations to Frappe Cloud would be greatly appreciated.

frappe ERPNext frappecloud

@RahulK2202 Before suggesting a specific migration path, a few things need to be clarified to ensure you don’t lose data.

Important Note: Since you mentioned files are stored inside your custom app’s public/ folder, you are likely in Path B (see below). In Frappe, user-uploaded content should live in sites/{site_name}/public/files, not inside the apps/ directory.

Please read Question 3 carefully before doing anything else.

1. Are your 18GB of files actually registered in Frappe?

Go to the Awesome bar → search File → open the File List. Do your media files appear there?

  • If no File records exist: These are likely static assets. Standard migration tools will not see them. You would need to script a process to upload them via the Frappe API to create File records first.

  • If File records exist: Proceed to Question 2.

2. How are these files referenced in your 25+ DocTypes?

  • Are you using Attach or Attach Image fields?

  • Are they stored as plain text paths (e.g., /files/image.jpg) in Data fields?

  • Or as static URLs (e.g., /assets/your_app/image.jpg)?

  • Risk: If you use hardcoded paths, moving to external cloud storage (like S3) may change the URL structure, which could break references. If you use proper Attach fields, Frappe usually handles the link mapping automatically.

3. Have you deployed your app on Frappe Cloud since the migration?

  • CRITICAL: On Frappe Cloud, files stored inside a custom app’s folder are not persistent. Frappe Cloud pulls a fresh copy of your app from GitHub on every deploy—meaning those files will be deleted on your next deployment.

  • Action: If you have not deployed yet, move those files to the site’s public/files folder and take a full site backup immediately.

4. Which Frappe Cloud plan are you on?

  • Migrating 18GB can be resource-intensive. Depending on your plan’s CPU/bandwidth limits, you may need to migrate in batches to avoid hitting resource quotas.

Summary of Paths

  • Path A (Files in File DocType + Attach fields): Moving to external cloud storage (e.g., S3) is straightforward using the S3 Attachment app available on the Frappe Cloud Marketplace.

  • Path B (Static assets with no File records): You will first need a custom script to register these files into Frappe’s File DocType before any storage migration can happen.
    Share these details and the community can suggest the specific tools or scripts to use.

In my case,file are currently in the custom app under public file, and they are linked using standard Attach/Attach Image fields / text editor fields.

What is your opinion on using Cloudflare R2 instead of Amazon S3 for this setup?

I am currently on the Frappe Cloud ₹4000 plan—will this configuration handle an 18GB migration smoothly?