# GROWI data transfer feature
# Overview
This feature allows for easy data transfer from one GROWI to another.
# Introduction
The following conditions must be met:
- Both GROWI versions of the destination and source GROWI must match.
- v6 or higher and the same version.
- If the environment variable USER_UPPER_LIMITis set, the destination USER_UPPER_LIMIT must be greater than the source USER_UPPER_LIMIT.
# Transfer flow
The data transfer process is as follows:
- Publish a transfer key for authentication with the destination GROWI. 
- Enter the transfer key in the source GROWI and click the Start transfer button. 
Each step is explained in detail below.
# 
 # Publish transfer key
- You can publish a transfer key regardless of whether GROWI is installed or not.
- If installed, publish the transfer key from the admin page.
 
 
 - If not installed, publish the transfer key from the installer screen.
 
 # Transfer key expiration
- The transfer key is valid for 1 hour.
- A transfer key can only be used once for transfer and cannot be reused.
# 
 # Inputting the transfer key and starting the transfer
- Enter the transfer key and click the start transfer button to start the transfer.
 
 # Select the collections and advanced options to be transferred
- By clicking the Advanced options button, you can configure which collections to transfer and adjust detailed settings for each collection.
- By default, all collections are transferd, and the contents of the source and destination databases will be the same.
- If duplicate data exists, it will be overwritten with the source data. However, the Config collection will be handled with a Flush and insertoperation.
 
 # File upload settings for the destination
As of v6.0.5, the settings of the destination are used as they are.
TIP
In a future update, the source's file upload settings will be selectable, and it will be possible to overwrite the destination's settings.
# Transferability of attached files
| from/to | Local | AWS(S3) | GCP(GCS) | Azure(Blob) | MongoDB(GridFS) | 未設定(none) | 
|---|---|---|---|---|---|---|
| Local | ✅ Transfer | ✅ Transfer | ✅ Transfer | ✅ Transfer | ✅ Transfer | ❌ Cannot transfer | 
| Cloud(S3) | ✅ Transfer | 🚩 Transfer if settings differ | ✅ Transfer | ✅ Transfer | ✅ Transfer | ❌ Cannot transfer | 
| Cloud(GCS) | ✅ Transfer | ✅ Transfer | 🚩 Transfer if settings differ | ✅ Transfer | ✅ Transfer | ❌ Cannot transfer | 
| Cloud(Azure) | ✅ Transfer | ✅ Transfer | ✅ Transfer | 🚩 Transfer if settings differ | ✅ Transfer | ❌ Cannot transfer | 
| GridFS | ✅ Transfer | ✅ Transfer | ✅ Transfer | ✅ Transfer | ✅ Transfer | ❌ Cannot transfer | 
| None | ❌ Cannot transfer | ❌ Cannot transfer | ❌ Cannot transfer | ✅ Transfer | ❌ Cannot transfer | ❌ Cannot transfer | 
- Cloud(S3/GCS/Azure) -> Cloud(GCS/S3/Azure)
- If the service/bucket name differs, the files will be transferred.
- If service/bucket name matches, no transfer. (Transfer is considered unnecessary and transfer is completed.)
 
- Destination not installed
- If the destination's environment variable FILE_UPLOADis set to 'aws' (default):- As of v6.0.5, files are not transferred.
- A future update will make file transfer possible.
 
- If the destination's environment variable FILE_UPLOADis set to 'mongodb' or 'local', the files are transferred.
- If the destination's environment variable FILE_UPLOADis set to 'gcp', and the related GCP environment variables (GCS_API_KEY_JSON_PATH,GCS_BUCKET,GCS_UPLOAD_NAMESPACE) are configured, the files are transferred.
 
- If the destination's environment variable 
WARNING
If the environment variable FILE_UPLOAD_DISABLED=true is set on the destination, attached files cannot be transferred.