-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
Description
Currently, we ask users to do uploads & downloads with Rclone, and use ada for everything else.
We can enable Ada to upload and download files, using curl.
Advantages:
- Users won't need Rclone. Rclone is absolutely great, but it is a different tool, and some users may not like it.
- Failing upload when data is corrupt. Ada could send the (MD5) checksum with an uploaded file, so that uploads are verified automatically. Corrupt files will not be accepted by dCache and will be cleaned up. Example use case: we have a project that does not have delete permissions because the users are afraid to accidentally delete data. Sometimes they receive uploads from external data providers. When an upload has failed and a corrupt file is left behind, they need to ask us admins to delete the file for them. In their case, sending files with their checksum will make sure that any file that is created will be correct. An additional benefit may be that the file in dCache will have an MD5 checksum. This checksum can then be listed with
ada --checksum. - It may be helpful for troubleshooting. In some cases, Rclone may run into problems, and then Ada may provide valuable information (like: token has expired).
- It would provide an extra example / reference of how to interact with dCache.
Challenges:
- This would need a WebDAV door and not the API. Getting a WebDAV door from the API is described in Ada: get API URL from a WebDAV door and vice versa #14.
- Some dCaches have not configured a redirect from API to WebDAV door. What to do in those cases?
- It would be best to not show the checksum on the curl command line, because that would allow other users on the same system to read file checksums with the
pscommand. Best would be to provide the checksum in a curl header file.
The dCache User Guide describes how to send the checksum with a file for integrity check. https://dcache.org/manuals/UserGuide-10.2/webdav.shtml#checksums (go to "Failing upload if data is corrupt")