[Cyberduck-trac] [Cyberduck] #11113: Multiple issues with `duck.sh --synchronize` when used on a Cryptomator Vault in S3

Cyberduck trac at cyberduck.io
Sun Jan 24 22:23:26 UTC 2021


#11113: Multiple issues with `duck.sh --synchronize` when used on a Cryptomator
Vault in S3
-----------------------------+----------------------
 Reporter:  thisisnotdalton  |         Owner:
     Type:  defect           |        Status:  new
 Priority:  normal           |     Milestone:
Component:  cryptomator      |       Version:  7.4.1
 Severity:  normal           |    Resolution:
 Keywords:                   |  Architecture:
 Platform:  Linux            |
-----------------------------+----------------------
Description changed by dkocher:

Old description:

> I encountered an issue where duck.sh (version 7.4.1 (33065) on Ubuntu)
> removes files unexpectedly when using `--synchronize` for Cryptomator
> vaults in S3.
>

> How to replicate:
> 1. create a cryptomator vault in S3
> 2. Create a folder locally and add a few file
> 3. Run `duck.sh --synchronize -e upload my_folder
> s3://my_bucket/my_vault/my_folder`
> 4. Add one more file locally
> 5. Run `duck.sh --synchronize -e upload my_folder
> s3://my_bucket/my_folder` again
> 6. Files uploaded in step 3 are now missing
>
> The commands I used (with any mention of credentials removed) are listed
> below:
>
> mkdir /tmp/my_folder/
> echo "Foo" > /tmp/my_folder/test1.txt
>
> duck --region us-east-1 --vault my_bucket/my_vault/ --synchronize s3://s3
> .us-east-1.amazonaws.com/my_bucket/my_vault/ /tmp/my_folder --existing
> upload
>
> Output: "Sync complete. my_folder ↔ my_folder…"
>
> duck --region us-east-1 --vault my_bucket/my_vault/ -l s3://s3.us-
> east-1.amazonaws.com/my_bucket/my_vault/my_folder/
>
> Output: "Listing directory my_folder... test1.txt"
>
> echo "Bar" > /tmp/my_folder/test2.txt
>
> duck --region us-east-1 --vault my_bucket/my_vault/ --synchronize s3://s3
> .us-east-1.amazonaws.com/my_bucket/my_vault/ /tmp/my_folder --existing
> upload
>
> Output: "Sync complete. my_folder ↔ my_folder…"
>
> duck --region us-east-1 --vault my_bucket/my_vault/ -l s3://s3.us-
> east-1.amazonaws.com/my_bucket/my_vault/my_folder/
>
> Output: "Listing directory my_folder... test2.txt"
>
> Additionally, I noticed that I am unable to use sync to download the
> contents of Cryptomator vaults from S3.
> Entering the command:
> duck --region us-east-1 --vault my_bucket/my_vault/ --synchronize s3://s3
> .us-east-1.amazonaws.com/my_bucket/my_vault/ /tmp/my_folder --existing
> download
>
> Outputs: "Transfer incomplete. my_folder ↔ my_folder…"
>
> I have entered variations of these sync commands with S3 buckets that are
> not in Cryptomator vaults and observed that duck does upload new files
> without deleting old files and does successfully download files with the
> --synchronize argument. The issue seems to only affect using
> --synchronize with Cryptomator vaults.

New description:

 I encountered an issue where duck.sh (version 7.4.1 (33065) on Ubuntu)
 removes files unexpectedly when using `--synchronize` for Cryptomator
 vaults in S3.


 How to replicate:
 1. create a cryptomator vault in S3
 2. Create a folder locally and add a few file
 3. Run `duck.sh --synchronize -e upload my_folder
 s3://my_bucket/my_vault/my_folder`
 4. Add one more file locally
 5. Run `duck.sh --synchronize -e upload my_folder
 s3://my_bucket/my_folder` again
 6. Files uploaded in step 3 are now missing

 The commands I used (with any mention of credentials removed) are listed
 below:


 {{{
 mkdir /tmp/my_folder/
 echo "Foo" > /tmp/my_folder/test1.txt

 }}}


 {{{
 duck --region us-east-1 --vault my_bucket/my_vault/ --synchronize s3://s3
 .us-east-1.amazonaws.com/my_bucket/my_vault/ /tmp/my_folder --existing
 upload

 }}}

 Output: "Sync complete. my_folder ↔ my_folder…"


 {{{
 duck --region us-east-1 --vault my_bucket/my_vault/ -l s3://s3.us-
 east-1.amazonaws.com/my_bucket/my_vault/my_folder/

 }}}

 Output: "Listing directory my_folder... test1.txt"


 {{{
 echo "Bar" > /tmp/my_folder/test2.txt

 }}}


 {{{
 duck --region us-east-1 --vault my_bucket/my_vault/ --synchronize s3://s3
 .us-east-1.amazonaws.com/my_bucket/my_vault/ /tmp/my_folder --existing
 upload

 }}}

 Output: "Sync complete. my_folder ↔ my_folder…"


 {{{
 duck --region us-east-1 --vault my_bucket/my_vault/ -l s3://s3.us-
 east-1.amazonaws.com/my_bucket/my_vault/my_folder/

 }}}

 Output: "Listing directory my_folder... test2.txt"

 Additionally, I noticed that I am unable to use sync to download the
 contents of Cryptomator vaults from S3.
 Entering the command:

 {{{
 duck --region us-east-1 --vault my_bucket/my_vault/ --synchronize s3://s3
 .us-east-1.amazonaws.com/my_bucket/my_vault/ /tmp/my_folder --existing
 download

 }}}

 Outputs: "Transfer incomplete. my_folder ↔ my_folder…"

 I have entered variations of these sync commands with S3 buckets that are
 not in Cryptomator vaults and observed that duck does upload new files
 without deleting old files and does successfully download files with the
 --synchronize argument. The issue seems to only affect using --synchronize
 with Cryptomator vaults.

--

--
Ticket URL: <https://trac.cyberduck.io/ticket/11113#comment:1>
Cyberduck <https://cyberduck.io>
Libre FTP, SFTP, WebDAV, S3 & OpenStack Swift browser for Mac and Windows


More information about the Cyberduck-trac mailing list