Backblaze B2 provides cost-effective cloud object storage with an S3-compatible API, but it does not natively support SFTP or FTP protocols for file transfers. This creates a challenge when you need to exchange files regularly with business partners, vendors, or internal systems that rely on these protocols for automated file transfers.
In this tutorial, you will configure Couchdrop to schedule automated file transfers between Backblaze B2 and external SFTP servers. You will connect your Backblaze B2 bucket to Couchdrop, configure a scheduled Transfer Automation to poll for new files, and set up the automation to transfer files at specified intervals without manual intervention.
When you complete this tutorial, you will have a working scheduled transfer that automatically moves files between Backblaze B2 and any SFTP-accessible location—enabling reliable B2B file exchange without managing infrastructure or writing code.
Prerequisites
To complete this tutorial, you will need:
- A Couchdrop account with permissions to create storage connections and automations. You can sign up for a free trial at couchdrop.io/register.
- A Backblaze B2 Cloud Storage account with an existing bucket. If you need help creating a bucket, follow Backblaze's bucket creation guide.
- Backblaze B2 application credentials (Key ID and Application Key) with read/write access to your bucket. You can generate these in your Backblaze account under App Keys.
- Access credentials for the external SFTP server you want to transfer files to or from (hostname, port, username, and password or SSH key).
Step 1 — Connecting Backblaze B2 to Couchdrop
Before you can schedule file transfers, you need to connect your Backblaze B2 bucket to Couchdrop as a storage location. This creates a virtual folder in Couchdrop that maps directly to your B2 bucket.
Log in to your Couchdrop account at https://my.couchdrop.io. Click + Create in the top navigation and select Connect to Storage from the dropdown menu.
In the storage connection list, locate Backblaze B2 and click Continue. Couchdrop will display the configuration form for Backblaze B2.
Enter your Backblaze credentials in the configuration form:
- Connection Name: Enter a descriptive name for this connection, such as
Backblaze ProductionorB2 Partner Exchange. This name helps you identify the connection when creating users or automations. - Folder Name: Enter a folder name that will represent this connection in Couchdrop's file system, such as
BackblazeorB2-Storage. This is the folder path SFTP users will see when they connect.
- Backblaze Key ID: Enter your application key ID from Backblaze. This is the identifier for the application key you created.
- Backblaze Master Key: Enter the application key itself (the long alphanumeric string). This authenticates Couchdrop to access your B2 storage.
- Bucket ID: Enter the unique identifier for your B2 bucket. You can find this in your Backblaze account under Buckets.
In the Folder Mapping Selection section, you can optionally specify a subfolder within your B2 bucket as the root directory for this connection. For example, if you want to work with files in /incoming/vendor-files/, enter that path here. If you leave this blank, Couchdrop will map to the root of your bucket.
Click Test Connection to verify that Couchdrop can successfully connect to your Backblaze B2 bucket. Couchdrop will attempt to authenticate and list the bucket contents. If the test succeeds, you will see a confirmation message.
Click Add Integration to save the connection. Your Backblaze B2 bucket is now available as a storage location in Couchdrop and will appear in folder browsers throughout the platform.
In the next step, you will configure the external SFTP connection that will be the source or destination for your scheduled transfers.
Step 2 — Connecting an External SFTP Server
To schedule file transfers between Backblaze B2 and another location, you need to configure the external SFTP server as a second storage connection in Couchdrop.
Navigate to + Create > Connect to Partners/Providers in the Couchdrop dashboard. Select SFTP Server from the list of available connections.
Configure the SFTP connection with the following details:
- Connection Name: Enter a descriptive name for this SFTP connection, such as
Partner SFTP ServerorInternal File Server. - Virtual Folder Name: Enter a name for how this connection will appear in Couchdrop's file browser, such as
partner-sftp. - Hostname: Enter the hostname or IP address of the external SFTP server (for example,
sftp.partner-company.com). - Port: Enter the SFTP port number. Most SFTP servers use port
22. If you are unsure, check with your SFTP provider. - Username: Enter the username for authenticating to the SFTP server.
- Password or Private Key: Enter either the password for the SFTP account, or upload a private key file if the server requires SSH key authentication.
Click Test Connection to verify that Couchdrop can connect to the external SFTP server. If the connection is successful, you will see the root directory contents.
Click Select a subfolder to choose which directory on the SFTP server you want to work with. For example, if your partner expects files in /incoming/, select that folder. This restricts the automation to only that directory.
Click Save Settings to complete the SFTP connection configuration.
In the next step, you will create a Transfer Automation to schedule file movement between these two locations.
Step 3 — Creating a Scheduled Transfer Automation
With both storage connections configured, you can now create a Transfer Automation that runs on a schedule to move files between Backblaze B2 and your SFTP server.
Navigate to Automations in the Couchdrop sidebar and click + New Automation or Transfer Automations > + Create New.
The automation builder will open with the Build Workflow tab active. You will configure four main components: the trigger schedule, the source location, the destination location, and any actions to perform on the files.
Click on the Configure Trigger section to define when this automation will run.
In the How do you want this automation to trigger? dropdown, select Scheduled to create a time-based automation.
Configure your schedule interval:
- Daily: Triggers once per day at a specified time (for example,
11:00 PMto run a nightly transfer). - Hourly: Triggers every hour at a specified minute past the hour (for example,
15to run at 1:15, 2:15, 3:15, etc.). - Frequency (minutes): Triggers at intervals from every 5 minutes up to every 59 minutes (for example, every
30minutes for frequent polling). - Weekly: Triggers once per week on a specific day and time (for example,
Friday, 5:00 PM). - Monthly: Triggers once per month on a specified day and time (for example, day
1at12:00 AMfor monthly reports).
If you need the automation to run at multiple intervals, click Add Secondary Schedule to add additional trigger times. For example, you might run the automation every hour during business hours and once overnight.
Click Save to confirm the trigger configuration.
Now click on the Configure Location section to define where files will be transferred from.
In the What would you like to transfer? section, select the appropriate option:
- File: Transfer a specific, named file (useful for known report names or single-file workflows).
- All Files in Folder: Transfer all files in the immediate folder, but not subfolders (useful for flat directory structures).
- All Files in Folder and Subfolders: Transfer all files recursively, including files in any subdirectories (useful for complex directory hierarchies).
- HTTP(s) File: Download a file from a URL and transfer it (useful for pulling files from web APIs).
Click Select a location to choose the source folder. You will see a list of your connected storage locations, including your Backblaze B2 bucket and SFTP server. Select the location you want to transfer files from.
For example, if you want to poll the external SFTP server for new files and copy them to Backblaze B2, select your SFTP connection here. If you want to distribute files from B2 to the SFTP server, select your Backblaze B2 connection.
Navigate to the specific folder within that storage location where source files are located, then click Select or Select Root Directory.
Click Continue to move to the destination configuration.
The Configure Destination section appears. Click Select a location to choose where files will be transferred to.
Select the destination storage location from the list. This should be the opposite of your source—if you selected the SFTP server as the source, select your Backblaze B2 connection as the destination, and vice versa.
Navigate to the specific folder within that storage where you want files to arrive, then click Select or Select Root Directory.
You can use variables in the destination path to organize files dynamically. For example:
/backups/{YYYY}/{MM}/{DD}/will organize files into date-based folders like/backups/2026/01/14//vendor-files/{USER}/will organize files by the username that uploaded them
Click Continue to finalize the destination configuration.
At this point, you have configured the core transfer: files will be polled from the source location on your specified schedule and copied to the destination location. You can optionally add actions like file renaming, encryption, or notifications by clicking the + button between components and selecting Actions or Notifications.
Click Save in the top right corner to save the automation. Couchdrop will validate your configuration and display any warnings or errors that need to be addressed.
Toggle the Transfer Automation Enabled switch to activate the automation. Once enabled, the automation will run according to your configured schedule.
In the next step, you will test the automation and verify it works correctly.
Step 4 — Testing the Scheduled Transfer
Before relying on the automation in production, you should test it to confirm files transfer correctly between Backblaze B2 and your SFTP server.
In the automation builder, click the Run/Trigger Workflow button. This manually executes the automation immediately, regardless of the configured schedule. This allows you to test without waiting for the next scheduled run.
Couchdrop will execute the automation and display progress in real time. You will see each step being processed, including connecting to the source, listing files, transferring them to the destination, and completing the workflow.
When the automation completes, click the View Executions tab to see a detailed log of what occurred. The execution log shows:
- The timestamp when the automation ran
- How many files were found in the source location
- Which files were transferred
- The final status (success or failure)
- Any errors encountered during execution
Navigate to your destination storage location (either in Backblaze B2 through the Backblaze console, or on your SFTP server using an SFTP client) to confirm the files arrived correctly.
If the test succeeded and files transferred as expected, your automation is working correctly. If files did not transfer or you see errors in the execution log, review the error messages and verify your storage connection credentials and folder paths are correct.
You can now rely on the automation to run on its configured schedule without manual intervention. In the next section, you will learn how to monitor ongoing executions and troubleshoot issues.
Step 5 — Monitoring and Managing Scheduled Transfers
After your automation is running on schedule, you should monitor its executions to ensure files continue transferring reliably.
Navigate to Automations in the Couchdrop sidebar and click on your Transfer Automation to open it. Click the View Executions tab to see a history of all past automation runs.
Each execution entry shows:
- The date and time the automation ran
- How many files were processed
- Whether it succeeded or failed
- The duration of the transfer
Click on any execution to view detailed logs for that run. The log shows exactly which files were transferred, any errors encountered, and the complete workflow execution path.
If you see failed executions, review the error messages in the log. Common issues include:
- Connection timeout: The source or destination server may be temporarily unavailable. The automation will retry on the next scheduled run.
- Permission denied: Your credentials may not have sufficient access to read from the source or write to the destination. Verify permissions in your storage configuration.
- File not found: If transferring a specific file, it may have been moved or deleted before the automation ran.
To modify the automation schedule or configuration, click the Build Workflow tab. Make your changes, then click Save to update the automation. Changes take effect on the next scheduled run.
To temporarily stop the automation without deleting it, toggle the Transfer Automation Enabled switch to disabled. You can re-enable it later by toggling the switch back on.
If you no longer need the automation, click the Settings tab and select Delete Automation. This permanently removes the scheduled transfer but does not affect any files that were already transferred.
You now have a fully functional scheduled file transfer system between Backblaze B2 and your external SFTP server. The automation will continue running on your configured schedule, automatically moving files without manual intervention.
Next Steps
In this tutorial, you configured Couchdrop to schedule automated file transfers between Backblaze B2 cloud storage and an external SFTP server. You connected both storage systems to Couchdrop, created a Transfer Automation with a scheduled trigger, and tested the workflow to verify files transfer correctly.
You can now reliably exchange files between Backblaze B2 and SFTP endpoints on a schedule—enabling automated B2B file transfers, regular data synchronization, and scheduled workflows without managing servers or writing code.
To expand this workflow, you might want to:
- Add file processing actions like PGP encryption for sensitive data before transfer
- Configure email notifications to alert you when transfers succeed or fail
- Use conditional filters to transfer only specific file types or files matching certain naming patterns
For more information on these features, check out our guides on Configuring Automation Actions, Setting Up Conditional Filtering, and Adding Notifications to Automations.