Q: Move data to Dropbox project folder based on filename information
Objective: Move data from server to Dropbox project folder based on filename information.
Example of such a filename: P9876543210_122123_EI0001_BIA1234C.zip
The Project Number is the first part until the underscore > P9876543210 This Project Number should be available in one of the Dropbox subfolders, so you’ll need to scan the subfolders of the Dropbox as Destination Root folder. There may be cases where the Project Number cannot be found in the Dropbox. This could be due to a typo or incorrect formatting by the scientist when setting up the experiment. In this case the .zip should be moved to the Dropbox …\Clients\Unknown\ directory.
A: We added a new option in version v2024.1.20.0 to achieve this.
- We used a Windows folder as Source. In this folder we’re going to search for the project zip files.
- Added the following include filename filter because we are only interested in .zip files:
- Next, please open our Pascal Script option:
- Enable and Add the following ‘On Destination’ Pascal Script:
- Please add the following script: link
- This script will:
- strip the project number from the filename into variable %VSA
- P9876543210_122123_EI0001_BIA1234C.zip > P9876543210 > %VSA
- remove the project number from the filename into variable %VSB
- P9876543210_122123_EI0001_BIA1234C.zip > 122123_EI0001_BIA1234C.zip > %VSB
- Both variables will be used in the Dropbox as Destination setup
- strip the project number from the filename into variable %VSA
- We added our Dropbox as Destination option and adjusted the Directory option > ‘/Clients’:
- Dropbox OAuth2 setup:
- Enable ‘Send Code Challange’
- Enable ‘Include Nonce’
- Authorization Endpoint URL: https://www.dropbox.com/oauth2/authorize
- Token Endpoint URL: https://api.dropboxapi.com/oauth2/token
- Add your Client ID and Client Secret (= App Secret)
- As scope we used:
- files.metadata.read files.metadata.write files.content.read files.content.write
- Type was set to:
- code
- Do not forget to set the Redirect URI (must be exact)
- http://localhost:3017/
- Click <GET> and follow the procedure. Afterwards Refresh and Access Token will be automatically added.
- Now the important part. We added our new ‘Search for Subdir Options’ under the ‘File & Directory’ Tab. So in our setup we will be looking for a subdirectory through all existing subfolders of the Dropbox Destination Directory with the name ‘%VSA/Data’ which converts using our example filename to ‘P9876543210/Data’. The variable %VSA is determined by the previous Pascal Script. The reason we added the /Data part is because the customer requested to store the files within a Data subfolder of the corresponding Project directory.
- If we don’t find this subdirectory then Clients/Unknown will be used. This ‘Search and replace Directory default full path’ must be a full path meaning starting from the home folder.
- We also added file renaming because the customer wanted to strip the Project number from the original Source filename.
- The complete filename will be replaces with the content of variable %VSB
#dropbox #managedfiletransfer #filetransfer #filemanagement
If you need any help with this ‘Dropbox project folder’ request, please let us know.
Best Regards,
Limagito Team