From bab7a1baff8eaef215cb1719a7b6f2c19b66eeca Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 11:56:58 +0100 Subject: [PATCH 01/18] docs/howto: Create howto-use-rclone-with-cubbit-ds3.md --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/howto/howto-use-rclone-with-cubbit-ds3.md diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md new file mode 100644 index 0000000..1c6e740 --- /dev/null +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -0,0 +1,8 @@ +--- +title: HOWTO Use rclone with Cubbit DS3 +date: 2023-11-05 +--- + +TODO + + \ No newline at end of file From 46d43e55b16078951a0e03ce8407b3472074b449 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 11:58:07 +0100 Subject: [PATCH 02/18] Add chapter: Executive Summary --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 1c6e740..63b026e 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -3,6 +3,10 @@ title: HOWTO Use rclone with Cubbit DS3 date: 2023-11-05 --- +## Executive Summary + +This guide explains how to use the [rclone](https://rclone.org/) tool to access contents and backup data on a bucket of [Cubbit DS3 Object Storage](https://www.cubbit.io/). + TODO \ No newline at end of file From aa711efdbcc46a7f796d7583069cf31b76a9306e Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:01:45 +0100 Subject: [PATCH 03/18] docs: index.rst: Add links to howto/howto-use-rclone-with-cubbit-ds3 --- docs/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index 617010d..901ddb1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -125,6 +125,7 @@ gone through during the project realization. * :doc:`howto/howto-configure-google-analytics` * :doc:`howto/howto-install-eclipse-capella` * :doc:`howto/howto-use-mermaid-graphic-tool` + * :doc:`howto/howto-use-rclone-with-cubbit-ds3` * **Learning AI and related tools**: * :doc:`howto/howto-install-depthai-on-rpi` @@ -154,6 +155,7 @@ gone through during the project realization. howto/howto-configure-google-analytics howto/howto-install-eclipse-capella howto/howto-use-mermaid-graphic-tool + howto/howto-use-rclone-with-cubbit-ds3 howto/howto-install-depthai-on-rpi howto/howto-install-depthai-on-windows10 From a45f33fef88a235c6cc295b1806ac09aec57cd39 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:05:50 +0100 Subject: [PATCH 04/18] Transform front matter into H1 --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 63b026e..97b7faf 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -1,7 +1,4 @@ ---- -title: HOWTO Use rclone with Cubbit DS3 -date: 2023-11-05 ---- +# HOWTO Use rclone with Cubbit DS3 ## Executive Summary From 45b3ddf79df7b392881feb8d3b88a7aa32535665 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:06:25 +0100 Subject: [PATCH 05/18] Fix markdownlint error --- docs/howto/howto-use-mermaid-graphic-tool.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/howto/howto-use-mermaid-graphic-tool.md b/docs/howto/howto-use-mermaid-graphic-tool.md index 11fad02..7b21dde 100644 --- a/docs/howto/howto-use-mermaid-graphic-tool.md +++ b/docs/howto/howto-use-mermaid-graphic-tool.md @@ -32,5 +32,4 @@ the theme dark in the code by using ```%%{init:{'theme':'dark'}}%%``` at the beg * * - - + \ No newline at end of file From 9ae9dd8b491f03f313cae5911668aa01b12398d5 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:07:52 +0100 Subject: [PATCH 06/18] Add chapter: Introduction to rclone --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 97b7faf..de7a75d 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -4,6 +4,15 @@ This guide explains how to use the [rclone](https://rclone.org/) tool to access contents and backup data on a bucket of [Cubbit DS3 Object Storage](https://www.cubbit.io/). +## Introduction to `rclone` + +From : + +> Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces. +> [Over 70 cloud storage products](https://rclone.org/#providers) support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols. + +Official instructions for using rclone with Cubbit DS3 are available at + TODO \ No newline at end of file From 3a59ee581f55aef4e74bf244f78082c2d9b5d051 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:09:51 +0100 Subject: [PATCH 07/18] Add chapter: Reference Documents --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index de7a75d..950bd8c 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -4,6 +4,11 @@ This guide explains how to use the [rclone](https://rclone.org/) tool to access contents and backup data on a bucket of [Cubbit DS3 Object Storage](https://www.cubbit.io/). +## Reference Documents + +* [Rclone Landing Page](https://rclone.org/) +* [Rclone guide on docs.cubbit.io](https://docs.cubbit.io/integrations/rclone) + ## Introduction to `rclone` From : From e2d0344efb8fb4fd6ae88121b7ed732123b99c01 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:13:27 +0100 Subject: [PATCH 08/18] Update Reference Documents and Introduction to rclone --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 950bd8c..de90f72 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -7,10 +7,13 @@ This guide explains how to use the [rclone](https://rclone.org/) tool to access ## Reference Documents * [Rclone Landing Page](https://rclone.org/) -* [Rclone guide on docs.cubbit.io](https://docs.cubbit.io/integrations/rclone) +* [GitHub: rclone/rclone](https://github.com/rclone/rclone) +* [Integration with Rclone - docs.cubbit.io](https://docs.cubbit.io/integrations/rclone) ## Introduction to `rclone` +Rclone ("_rsync for cloud storage_") is a command-line program to sync files and directories to and from different cloud storage providers. + From : > Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces. From 0ce02b281cb21ba0280c469d6c3cba1d1911ddb0 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:24:44 +0100 Subject: [PATCH 09/18] Add chapter: Installing rclone --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 79 ++++++++++++++++++- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index de90f72..897e975 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -2,13 +2,13 @@ ## Executive Summary -This guide explains how to use the [rclone](https://rclone.org/) tool to access contents and backup data on a bucket of [Cubbit DS3 Object Storage](https://www.cubbit.io/). +This guide explains how to use the [rclone](https://rclone.org/) tool to access contents and backup data inside a bucket on [Cubbit DS3 Object Storage](https://www.cubbit.io/). ## Reference Documents -* [Rclone Landing Page](https://rclone.org/) +* [Rclone landing page](https://rclone.org/) * [GitHub: rclone/rclone](https://github.com/rclone/rclone) -* [Integration with Rclone - docs.cubbit.io](https://docs.cubbit.io/integrations/rclone) +* [Cubbit docs > Integrations > Rclone](https://docs.cubbit.io/integrations/rclone) ## Introduction to `rclone` @@ -21,6 +21,79 @@ From : Official instructions for using rclone with Cubbit DS3 are available at +## Installing rclone + +Follow the instructions at . +The following sections detail the results performing the installation on some relevant hosts. + +### Install `rclone` on hw2228 (Ubuntu 22.04.3 LTS) + +Check if rclone is already installed: + +```text +gmacario@hw2228:~$ lsb_release -a +No LSB modules are available. +Distributor ID: Ubuntu +Description: Ubuntu 22.04.3 LTS +Release: 22.04 +Codename: jammy +gmacario@hw2228:~$ rclone +Command 'rclone' not found, but can be installed with: +sudo snap install rclone # version 1.64.0, or +sudo apt install rclone # version 1.53.3-4ubuntu1.22.04.2 +See 'snap info rclone' for additional versions. +gmacario@hw2228:~$ +``` + +Let us install rclone 1.64.0 via snap + +```text +sudo snap install rclone +``` + +Check: + +```text +gmacario@hw2228:~$ rclone version +rclone v1.64.0 +- os/version: ubuntu 22.04 (64 bit) +- os/kernel: 6.2.0-36-generic (x86_64) +- os/type: linux +- os/arch: amd64 +- go/version: go1.21.1 +- go/linking: static +- go/tags: snap +gmacario@hw2228:~$ +``` + +### Configure rclone for Cubbit DS3 + +Run the `rclone config` command and type the following options +(you must replace `************` with the values from the `.csv` file) + +```bash +n # e/n/d/r/c/s/q> (New remote) +cubbit # name> (Enter name for new remote.) +5 # Storage> (Amazon S3 Compliant Storage Provider) +29 # provider> (Any other S3 compatible provider) +1 # env_auth> (Enter AWS credentials in the next step) +************ # access_key_id> +************ # secret_access_key> +eu-west-1 # region> +https://s3.cubbit.eu # endpoint> (Required when using an S3 clone.) + # location_constraint> (Press Enter to leave empty) +1 # acl> (Owner gets FULL_CONTROL.No one else has access rights (default).(private)) +n # Edit advanced config? +y # y/e/d> (Yes this is OK) +q # e/n/d/r/c/s/q> (Quit config) +``` + +Once the `rclone config` command is complete the following command dumps the config file as JSON: + +```bash +rclone config dump +``` + TODO \ No newline at end of file From baacf53726706ad48f1027a80306daf5e27ead61 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 12:25:48 +0100 Subject: [PATCH 10/18] Add chapter: Some useful rclone commands --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 897e975..ed0518c 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -94,6 +94,226 @@ Once the `rclone config` command is complete the following command dumps the con rclone config dump ``` +## Some useful `rclone` commands + +### List files from a bucket + +```bash +rclone ls cubbit:${BUCKET_NAME} +``` + +Example result: + +```text +gmacario@hw2228:~$ rclone ls cubbit:baroloteam + 4985990 IMG_20230826_124002_1.jpg + 4421972 IMG_20230826_124009_1.jpg + 64546 newplot.png +gmacario@hw2228:~$ +``` + +An error is returned if the bucket does not exist or we have no access: + +```text +gmacario@hw2228:~$ rclone ls cubbit:newbucket +2023/11/05 11:05:33 Failed to ls: LambdaRuntimeError: Forbidden + status code: 403, request id: , host id: +gmacario@hw2228:~$ +``` + +**NOTE**: The `rclone ls` command has a number of useful options which may be discovered with the `rclone ls --help` command: + +```text +gmacario@hw2228:~$ rclone ls --help + +Lists the objects in the source path to standard output in a human +readable format with size and path. Recurses by default. + +Eg + + $ rclone ls swift:bucket + 60295 bevajer5jef + 90613 canole + 94467 diwogej7 + 37600 fubuwic + + +Any of the filtering options can be applied to this command. + +There are several related list commands + + * `ls` to list size and path of objects only + * `lsl` to list modification time, size and path of objects only + * `lsd` to list directories only + * `lsf` to list objects and directories in easy to parse format + * `lsjson` to list objects and directories in JSON format + +`ls`,`lsl`,`lsd` are designed to be human-readable. +`lsf` is designed to be human and machine-readable. +`lsjson` is designed to be machine-readable. + +Note that `ls` and `lsl` recurse by default - use `--max-depth 1` to stop the recursion. + +The other list commands `lsd`,`lsf`,`lsjson` do not recurse by default - use `-R` to make them recurse. + +Listing a nonexistent directory will produce an error except for +remotes which can't have empty directories (e.g. s3, swift, or gcs - +the bucket-based remotes). + +Usage: + rclone ls remote:path [flags] + +Flags: + -h, --help help for ls + + +# Filter Flags + +Flags for filtering directory listings. + + --delete-excluded Delete files on dest excluded from sync + --exclude stringArray Exclude files matching pattern + --exclude-from stringArray Read file exclude patterns from file (use - to read from stdin) + --exclude-if-present stringArray Exclude directories if filename is present + --files-from stringArray Read list of source-file names from file (use - to read from stdin) + --files-from-raw stringArray Read list of source-file names from file without any processing of lines (use - to read from stdin) + -f, --filter stringArray Add a file filtering rule + --filter-from stringArray Read file filtering patterns from a file (use - to read from stdin) + --ignore-case Ignore case in filters (case insensitive) + --include stringArray Include files matching pattern + --include-from stringArray Read file include patterns from file (use - to read from stdin) + --max-age Duration Only transfer files younger than this in s or suffix ms|s|m|h|d|w|M|y (default off) + --max-depth int If set limits the recursion depth to this (default -1) + --max-size SizeSuffix Only transfer files smaller than this in KiB or suffix B|K|M|G|T|P (default off) + --metadata-exclude stringArray Exclude metadatas matching pattern + --metadata-exclude-from stringArray Read metadata exclude patterns from file (use - to read from stdin) + --metadata-filter stringArray Add a metadata filtering rule + --metadata-filter-from stringArray Read metadata filtering patterns from a file (use - to read from stdin) + --metadata-include stringArray Include metadatas matching pattern + --metadata-include-from stringArray Read metadata include patterns from file (use - to read from stdin) + --min-age Duration Only transfer files older than this in s or suffix ms|s|m|h|d|w|M|y (default off) + --min-size SizeSuffix Only transfer files bigger than this in KiB or suffix B|K|M|G|T|P (default off) + +# Listing Flags + +Flags for listing directories. + + --default-time Time Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z) + --fast-list Use recursive list if available; uses more memory but fewer transactions + + +Additional help topics: + +Use "rclone [command] --help" for more information about a command. +Use "rclone help flags" for to see the global flags. +Use "rclone help backends" for a list of supported services. +gmacario@hw2228:~$ +``` + +### Sync folder to a bucket on Cubbit DS3 + +```bash +rclone sync -P ./backup-folder cubbit:${BUCKET_NAME} +``` + +Note that `BUCKET_NAME` must exist otherwise the command will fail (it may be created from ) + +On the other hand, if you sync files to a subfolder of a bucket, the subfolder will be created automatically if it does not exist. +Example: + +```text +gmacario@gmpowerhorse:~ $ rclone sync -P ~/Downloads cubbit:bk-gmpowerhorse/test02 +Transferred: 146.829M / 146.829 MBytes, 100%, 7.582 MBytes/s, ETA 0s +Errors: 0 +Checks: 0 / 0, - +Transferred: 17 / 17, 100% +Elapsed time: 19.3s +gmacario@gmpowerhorse:~ $ +``` + +### Backup files from gmpowerhorse (Ubuntu 20.04.6 LTS) + +Prerequisites: + +* Bucket already created from + * Bucket name: `bk-gmpowerhorse` + * Bucket versioning: Versioning disabled + Object Lock: Object Lock disable + * Ownership Control: Object writer +* Cubbit DS3 API key saved in a `.csv` file + +Install rclone using apt + +```bash +sudo apt install rclone +``` + +Check installed version + +```text +gmacario@gmpowerhorse:~ $ rclone --version +rclone v1.50.2 +- os/arch: linux/amd64 +- go version: go1.13.8 +gmacario@gmpowerhorse:~ $ +``` + +Type the following command to make sure you can access bucket `bk-gmpowerhorse`: + +```bash +rclone ls cubbit:bk-gmpowerhorse +``` + +Result: + +```text +gmacario@gmpowerhorse:~ $ rclone ls cubbit:bk-gmpowerhorse +gmacario@gmpowerhorse:~ $ +``` + +Now use rclone to synchronize contents of folder `~/Downloads` to bucket `bk-gmpowerhorse` on Cubbit DS3: + +```bash +rclone sync -P ~/Downloads cubbit:bk-gmpowerhorse +``` + +Result: + +```text +gmacario@gmpowerhorse:~ $ rclone sync -P ~/Downloads cubbit:bk-gmpowerhorse +Transferred: 146.829M / 146.829 MBytes, 100%, 7.824 MBytes/s, ETA 0s +Errors: 0 +Checks: 0 / 0, - +Transferred: 17 / 17, 100% +Elapsed time: 18.7s +gmacario@gmpowerhorse:~ $ +``` + +Now check from `gmacario@hw2228` that all the files have been transferred: + +```text +gmacario@hw2228:~$ rclone ls cubbit:bk-gmpowerhorse +gmacario@hw2228:~$ rclone ls cubbit:bk-gmpowerhorse + 80609819 CLI_Linux_Debian_5.5.2.zip + 53237226 FingKit_CLI_Linux_Debian.zip + 1572864 bios-gmpowerhorse/BIOS_CD/7F5_0146.iso + 1048576 bios-gmpowerhorse/DOS_Flash/7F5_0146.bin + 27660 bios-gmpowerhorse/DOS_Flash/ASSIGNPW.EXE + 2841 bios-gmpowerhorse/DOS_Flash/DOSFM.txt + 54441 bios-gmpowerhorse/DOS_Flash/FLASHBIN.EXE + 3102 bios-gmpowerhorse/DOS_Flash/Flashbin.txt + 1003 bios-gmpowerhorse/DOS_Flash/README.TXT + 3388 bios-gmpowerhorse/DOS_Flash/flsh.cpu + 2957 bios-gmpowerhorse/README + 18746 bios-gmpowerhorse/hp-lxbios-1.5-1.i386.rpm + 13894 bios-gmpowerhorse/hp-lxbios-mod-1.5-1_2.6.9.67.ELsmp.src.rpm + 48836 bios-gmpowerhorse/lxbios_readme.pdf + 411 iottly-device-agent.service + 16079382 iottlyagent_1.6.4_linux_AMD64.tar.gz + 1235710 sp59252.tgz +gmacario@hw2228:~$ +``` + TODO \ No newline at end of file From 3a57f58fdf5ca29094036acf21d2bd3bb34f4a98 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Sun, 5 Nov 2023 13:03:32 +0100 Subject: [PATCH 11/18] Update chapter: Configuring rclone for Cubbit DS3 --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 67 ++++++++++++++++-- ...2023-11-05-cubbit-ds-create-access-key.png | Bin 0 -> 49746 bytes 2 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 docs/images/2023-11-05-cubbit-ds-create-access-key.png diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index ed0518c..338ce57 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -21,12 +21,15 @@ From : Official instructions for using rclone with Cubbit DS3 are available at -## Installing rclone +## Installing `rclone` + +The page at provide detailed instructions for installing `rclone` under many Operating Systems and HW architectures. -Follow the instructions at . The following sections detail the results performing the installation on some relevant hosts. -### Install `rclone` on hw2228 (Ubuntu 22.04.3 LTS) +### Install rclone on Ubuntu 22.04.3 LTS + +(Tested on host HW2228) Check if rclone is already installed: @@ -45,13 +48,13 @@ See 'snap info rclone' for additional versions. gmacario@hw2228:~$ ``` -Let us install rclone 1.64.0 via snap +A more recent version of `rclone` (1.64.0 as of 2023-11-05) is available via [snap](https://snapcraft.io/docs/installing-snap-on-ubuntu), therefore let us install `rclone` with the following command: ```text sudo snap install rclone ``` -Check: +Verify that the installation was performed correctly: ```text gmacario@hw2228:~$ rclone version @@ -66,7 +69,57 @@ rclone v1.64.0 gmacario@hw2228:~$ ``` -### Configure rclone for Cubbit DS3 +### Installing rclone on Windows 10 Pro + +(Tested on host ALPHA) + +Download the installation file for the Windows OS from (as of 2023-11-05 this is `rclone-v1.64.2-windows-amd64.zip`), +then uncompress the `.zip` archive and copy the `rclone.exe` file into a directory listed in the `PATH` environment variable. + +You may verify that the installation was performed successfully by typing `rclone --version` from the command-line prompt. + +Example (from Git bash) + +```text +gmaca@alpha MINGW64 ~ +$ which rclone +/c/Users/gmaca/bin/rclone + +gmaca@alpha MINGW64 ~ +$ rclone --version +rclone v1.64.2 +- os/version: Microsoft Windows 10 Pro 22H2 (64 bit) +- os/kernel: 10.0.19045.3636 (x86_64) +- os/type: windows +- os/arch: amd64 +- go/version: go1.21.3 +- go/linking: static +- go/tags: cmount + +gmaca@alpha MINGW64 ~ +$ +``` + +## Configuring rclone for Cubbit DS3 + +After the `rclone` tool has been installed it must be configured in order to access the data stored on Cubbit DS3. + +**NOTE**: A similar procedure can be used to configure rclone for other object storage backends, for instance [Amazon Simple Storage Service (Amazon S3)](https://aws.com/s3) or [Azure Blob Storage](https://azure.microsoft.com/products/storage/blobs/). + +### Create Access Key ID and Secret for Cubbit DS3 + +Login to Cubbit DS3 Object Storage from + +From your Workspace click "Settings > API keys", then click "+ Generate new client API key" + +![2023-11-05-cubbit-ds-create-access-key.png](../images/2023-11-05-cubbit-ds-create-access-key.png) + +Accept the proposed key name, or change it if you prefer, then click "Download .csv". +This file contains the Access key ID and Secret access key which will be used to configure a S3 client application such as [S3 Browser](https://s3browser.com/). + +### Run `rclone config` + +Prerequisite: `snap` installed as detailed in the previous chapter. Run the `rclone config` command and type the following options (you must replace `************` with the values from the `.csv` file) @@ -96,7 +149,7 @@ rclone config dump ## Some useful `rclone` commands -### List files from a bucket +### List files in a bucket ```bash rclone ls cubbit:${BUCKET_NAME} diff --git a/docs/images/2023-11-05-cubbit-ds-create-access-key.png b/docs/images/2023-11-05-cubbit-ds-create-access-key.png new file mode 100644 index 0000000000000000000000000000000000000000..faacb1ac6eacd9e9f61cc9eacd9676e0241dec37 GIT binary patch literal 49746 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 AeE Date: Tue, 7 Nov 2023 23:00:51 +0100 Subject: [PATCH 12/18] Add subsection: Example 2 --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 338ce57..de5729d 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -263,7 +263,7 @@ Use "rclone help backends" for a list of supported services. gmacario@hw2228:~$ ``` -### Sync folder to a bucket on Cubbit DS3 +### Sync a local folder to a bucket on Cubbit DS3 ```bash rclone sync -P ./backup-folder cubbit:${BUCKET_NAME} @@ -272,7 +272,8 @@ rclone sync -P ./backup-folder cubbit:${BUCKET_NAME} Note that `BUCKET_NAME` must exist otherwise the command will fail (it may be created from ) On the other hand, if you sync files to a subfolder of a bucket, the subfolder will be created automatically if it does not exist. -Example: + +#### Example 1 ```text gmacario@gmpowerhorse:~ $ rclone sync -P ~/Downloads cubbit:bk-gmpowerhorse/test02 @@ -284,6 +285,32 @@ Elapsed time: 19.3s gmacario@gmpowerhorse:~ $ ``` +#### Example 2 + + + +```bash +cd ~/Dropbox/Cubbit_MIRROR/CUBBIT_SHARED/SHARED_WITH_BAROLOTEAM +rclone sync -P . cubbit:baroloteam-from-dropbox +``` + +Result: + +```text +gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR/CUBBIT_SHARED/SHARED_WITH_BAROLOTEAM +$ rclone sync -P . cubbit:baroloteam-from-dropbox +Transferred: 106.072 MiB / 4.432 GiB, 2%, 8.153 MiB/s, ETA 9m3s +Transferred: 2 / 724, 0% +Elapsed time: 14.0s +Transferring: + * freisa-media-andreapodo/Grapevine desease.zip: transferring + * freisa-media-andreapod…aves_Image_Dataset.zip: transferring + * freisa-media-andreapod…ment-canopy.yolov8.zip:100% /64.173Mi, 12.856Mi/s, 0s + * freisa-media-andreapod…post-trunks.yolov8.zip: transferring +``` + +TODO + ### Backup files from gmpowerhorse (Ubuntu 20.04.6 LTS) Prerequisites: From 67761b8b242924eb39cc02e3257d4b62d3395fd2 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Wed, 8 Nov 2023 06:29:26 +0100 Subject: [PATCH 13/18] Complete sync to cubbit:baroloteam-from-dropbox --- docs/howto/howto-use-rclone-with-cubbit-ds3.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index de5729d..58ac0a5 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -299,17 +299,13 @@ Result: ```text gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR/CUBBIT_SHARED/SHARED_WITH_BAROLOTEAM $ rclone sync -P . cubbit:baroloteam-from-dropbox -Transferred: 106.072 MiB / 4.432 GiB, 2%, 8.153 MiB/s, ETA 9m3s -Transferred: 2 / 724, 0% -Elapsed time: 14.0s -Transferring: - * freisa-media-andreapodo/Grapevine desease.zip: transferring - * freisa-media-andreapod…aves_Image_Dataset.zip: transferring - * freisa-media-andreapod…ment-canopy.yolov8.zip:100% /64.173Mi, 12.856Mi/s, 0s - * freisa-media-andreapod…post-trunks.yolov8.zip: transferring -``` +Transferred: 4.945 GiB / 4.945 GiB, 100%, 117.173 KiB/s, ETA 0s +Transferred: 724 / 724, 100% +Elapsed time: 33m8.1s -TODO +gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR/CUBBIT_SHARED/SHARED_WITH_BAROLOTEAM +$ +``` ### Backup files from gmpowerhorse (Ubuntu 20.04.6 LTS) From f5c9079b9c526f189cd7c1b0d0dec9c4872db890 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Wed, 8 Nov 2023 06:34:01 +0100 Subject: [PATCH 14/18] Add Example 3 (WIP) --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 58ac0a5..6575aa4 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -307,6 +307,32 @@ gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR/CUBBIT_SHARED/SHARED_WITH_BAROLOTEAM $ ``` +#### Example 3 + + + +```bash +cd ~/Dropbox/Cubbit_MIRROR +rclone sync -P . cubbit:mirror-from-dropbox +``` + +Result: + +```text +gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR +$ rclone sync -P . cubbit:mirror-from-dropbox +Transferred: 45.985 MiB / 280.245 GiB, 0%, 788.967 KiB/s, ETA 4d7h26m +Transferred: 4 / 6405, 0% +Elapsed time: 55.5s +Transferring: + * CORSO_JAVASCRIPT_VIDEO…o-javascript-array.mp4: 11% /55.366Mi, 163.406Ki/s, 5m6s + * CORSO_JAVASCRIPT_VIDEO…script-async-await.mp4: 81% /24.572Mi, 275.659Ki/s, 16s + * CORSO_JAVASCRIPT_VIDEO…-javascript-classi.mp4: 31% /25.246Mi, 197.664Ki/s, 1m29s + * CORSO_JAVASCRIPT_VIDEO…avascript-closures.mp4: 42% /27.334Mi, 198.408Ki/s, 1m21s +``` + +TODO + ### Backup files from gmpowerhorse (Ubuntu 20.04.6 LTS) Prerequisites: From d43e5425854a6ff66a6c0cc197d1f7690e60900e Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Wed, 8 Nov 2023 19:28:39 +0100 Subject: [PATCH 15/18] Example 3 completed for the first time --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 6575aa4..b352926 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -321,14 +321,23 @@ Result: ```text gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR $ rclone sync -P . cubbit:mirror-from-dropbox -Transferred: 45.985 MiB / 280.245 GiB, 0%, 788.967 KiB/s, ETA 4d7h26m -Transferred: 4 / 6405, 0% -Elapsed time: 55.5s -Transferring: - * CORSO_JAVASCRIPT_VIDEO…o-javascript-array.mp4: 11% /55.366Mi, 163.406Ki/s, 5m6s - * CORSO_JAVASCRIPT_VIDEO…script-async-await.mp4: 81% /24.572Mi, 275.659Ki/s, 16s - * CORSO_JAVASCRIPT_VIDEO…-javascript-classi.mp4: 31% /25.246Mi, 197.664Ki/s, 1m29s - * CORSO_JAVASCRIPT_VIDEO…avascript-closures.mp4: 42% /27.334Mi, 198.408Ki/s, 1m21s +... +2023/11/08 11:14:47 ERROR : S3 bucket mirror-from-dropbox: not deleting files as ther +e were IO errors +2023/11/08 11:14:47 ERROR : S3 bucket mirror-from-dropbox: not deleting directories a +s there were IO errors +2023/11/08 11:14:47 ERROR : Attempt 3/3 failed with 6261 errors and: failed to open s +ource object: The file cannot be accessed by the system. +Transferred: 7.145 GiB / 7.145 GiB, 100%, 246.635 KiB/s, ETA 0s +Errors: 6261 (retrying may help) +Checks: 286 / 286, 100% +Transferred: 144 / 144, 100% +Elapsed time: 4h42m9.6s +2023/11/08 11:14:47 Failed to sync with 6261 errors: last error was: failed to open s +ource object: The file cannot be accessed by the system. + +gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR +$ ``` TODO From e6942fd90d3264b23acf5e7a2901c62e2387a251 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Thu, 9 Nov 2023 04:51:49 +0100 Subject: [PATCH 16/18] Example 3: New run --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index b352926..7baa569 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -309,7 +309,7 @@ $ #### Example 3 - + ```bash cd ~/Dropbox/Cubbit_MIRROR @@ -322,19 +322,22 @@ Result: gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR $ rclone sync -P . cubbit:mirror-from-dropbox ... -2023/11/08 11:14:47 ERROR : S3 bucket mirror-from-dropbox: not deleting files as ther +2023/11/09 01:02:47 ERROR : CUBBIT_SHARED/SHARED_WITH_AROL/SHARED_MAGAZINES/Eletttron +ica_2000/2° ZipPack - Elettronica 2000.zip: Failed to copy: multi-thread copy: failed + to open source: The file cannot be accessed by the system. +2023/11/09 01:02:47 ERROR : S3 bucket mirror-from-dropbox: not deleting files as ther e were IO errors -2023/11/08 11:14:47 ERROR : S3 bucket mirror-from-dropbox: not deleting directories a +2023/11/09 01:02:47 ERROR : S3 bucket mirror-from-dropbox: not deleting directories a s there were IO errors -2023/11/08 11:14:47 ERROR : Attempt 3/3 failed with 6261 errors and: failed to open s -ource object: The file cannot be accessed by the system. -Transferred: 7.145 GiB / 7.145 GiB, 100%, 246.635 KiB/s, ETA 0s -Errors: 6261 (retrying may help) -Checks: 286 / 286, 100% -Transferred: 144 / 144, 100% -Elapsed time: 4h42m9.6s -2023/11/08 11:14:47 Failed to sync with 6261 errors: last error was: failed to open s -ource object: The file cannot be accessed by the system. +2023/11/09 01:02:47 ERROR : Attempt 3/3 failed with 4646 errors and: multi-thread cop +y: failed to open source: The file cannot be accessed by the system. +Transferred: 6.804 GiB / 6.804 GiB, 100%, 139.400 KiB/s, ETA 0s +Errors: 4646 (retrying may help) +Checks: 3682 / 3682, 100% +Transferred: 1590 / 1590, 100% +Elapsed time: 4h59m39.8s +2023/11/09 01:02:47 Failed to sync with 4646 errors: last error was: multi-thread cop +y: failed to open source: The file cannot be accessed by the system. gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR $ From 426249a89544008663ba0f09e4529e7de241c197 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Thu, 9 Nov 2023 20:17:45 +0100 Subject: [PATCH 17/18] Another run of Example 3 --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index 7baa569..a7b5756 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -309,7 +309,7 @@ $ #### Example 3 - + ```bash cd ~/Dropbox/Cubbit_MIRROR @@ -322,21 +322,16 @@ Result: gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR $ rclone sync -P . cubbit:mirror-from-dropbox ... -2023/11/09 01:02:47 ERROR : CUBBIT_SHARED/SHARED_WITH_AROL/SHARED_MAGAZINES/Eletttron -ica_2000/2° ZipPack - Elettronica 2000.zip: Failed to copy: multi-thread copy: failed - to open source: The file cannot be accessed by the system. -2023/11/09 01:02:47 ERROR : S3 bucket mirror-from-dropbox: not deleting files as ther -e were IO errors -2023/11/09 01:02:47 ERROR : S3 bucket mirror-from-dropbox: not deleting directories a +2023/11/09 09:40:13 ERROR : S3 bucket mirror-from-dropbox: not deleting directories a s there were IO errors -2023/11/09 01:02:47 ERROR : Attempt 3/3 failed with 4646 errors and: multi-thread cop +2023/11/09 09:40:13 ERROR : Attempt 3/3 failed with 3596 errors and: multi-thread cop y: failed to open source: The file cannot be accessed by the system. -Transferred: 6.804 GiB / 6.804 GiB, 100%, 139.400 KiB/s, ETA 0s -Errors: 4646 (retrying may help) -Checks: 3682 / 3682, 100% -Transferred: 1590 / 1590, 100% -Elapsed time: 4h59m39.8s -2023/11/09 01:02:47 Failed to sync with 4646 errors: last error was: multi-thread cop +Transferred: 13.825 GiB / 13.825 GiB, 100%, 242 B/s, ETA 0s +Errors: 3596 (retrying may help) +Checks: 7381 / 7381, 100% +Transferred: 1050 / 1050, 100% +Elapsed time: 4h47m54.0s +2023/11/09 09:40:13 Failed to sync with 3596 errors: last error was: multi-thread cop y: failed to open source: The file cannot be accessed by the system. gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR From 50445957384264f0b08fa42bd3239ab4fecf87f4 Mon Sep 17 00:00:00 2001 From: Gianpaolo Macario Date: Thu, 9 Nov 2023 23:42:57 +0100 Subject: [PATCH 18/18] Latest run --- .../howto/howto-use-rclone-with-cubbit-ds3.md | 64 +++++++++++++++---- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/docs/howto/howto-use-rclone-with-cubbit-ds3.md b/docs/howto/howto-use-rclone-with-cubbit-ds3.md index a7b5756..703158c 100644 --- a/docs/howto/howto-use-rclone-with-cubbit-ds3.md +++ b/docs/howto/howto-use-rclone-with-cubbit-ds3.md @@ -309,7 +309,7 @@ $ #### Example 3 - + ```bash cd ~/Dropbox/Cubbit_MIRROR @@ -322,17 +322,31 @@ Result: gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR $ rclone sync -P . cubbit:mirror-from-dropbox ... -2023/11/09 09:40:13 ERROR : S3 bucket mirror-from-dropbox: not deleting directories a -s there were IO errors -2023/11/09 09:40:13 ERROR : Attempt 3/3 failed with 3596 errors and: multi-thread cop -y: failed to open source: The file cannot be accessed by the system. -Transferred: 13.825 GiB / 13.825 GiB, 100%, 242 B/s, ETA 0s -Errors: 3596 (retrying may help) -Checks: 7381 / 7381, 100% -Transferred: 1050 / 1050, 100% -Elapsed time: 4h47m54.0s -2023/11/09 09:40:13 Failed to sync with 3596 errors: last error was: multi-thread cop -y: failed to open source: The file cannot be accessed by the system. +2023/11/09 22:21:17 ERROR : Win10-images/Win10_21H1_Italian_x64.iso: Failed to copy: +multi-thread copy: failed to open source: The file cannot be accessed by the system. +2023/11/09 22:21:18 ERROR : ARCHIVE/2023-07-15-google-takeout/Tutti i messaggi compre +si Spam e Cestino-005.mbox: Failed to copy: multi-thread copy: failed to open source: + The file cannot be accessed by the system. +Transferred: 3.285 GiB / 211.470 GiB, 2%, 241.274 KiB/s, ETA 1w3d11h +Errors: 4 (retrying may help) +Checks: 3292 / 5125, 64% +Transferred: 295 / 2853, 10% +Elapsed time: 2h2m18.9s +Checking: + * CUBBIT_SHARED/SHARED_W…30830_17_02_10_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_02_11_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_02_12_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_20_12_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_20_13_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_20_16_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_20_22_Pro.jpg: checking + * CUBBIT_SHARED/SHARED_W…30830_17_20_23_Pro.jpg: checking +Transferring: + * ARCHIVE/2023-07-15-goo…230715T062408Z-003.zip: 0% /1.984Gi, 9.408Ki/s, 60h48m14 + * ARCHIVE/2023-07-15-goo…230715T062408Z-004.zip: 1% /1.611Gi, 46.785Ki/s, 9h54m17 + * warez/2019-09-04-solid…dWorks 2018.part01.rar: 3% /1Gi, 45.942Ki/s, 6h5m31s + * warez/2019-09-04-solid…dWorks 2018.part02.rar: 1% /1Gi, 87.172Ki/s, 3h16m33s + gmaca@alpha MINGW64 ~/Dropbox/Cubbit_MIRROR $ @@ -423,6 +437,32 @@ gmacario@hw2228:~$ rclone ls cubbit:bk-gmpowerhorse gmacario@hw2228:~$ ``` + + +Command: + +```bash +cd +rclone sync -P ~/Downloads cubbit:bk-gmpowerhorse +``` + +Result> + +```text +gmacario@gmpowerhorse:~ $ rclone sync -P . cubbit:bk-gmpowerhorse/home_gmacario +... +2023-11-09 23:34:43 ERROR : S3 bucket bk-gmpowerhorse path home_gmacario: not deleting files as there were IO errors +2023-11-09 23:34:43 ERROR : S3 bucket bk-gmpowerhorse path home_gmacario: not deleting directories as there were IO errors +2023-11-09 23:34:43 ERROR : Attempt 3/3 failed with 17 errors and: failed to open source object: open /home/gmacario/github/gmacario/hassio-gmpowerhorse/config/.storage/core.uuid: permission denied +Transferred: 414.161M / 414.161 MBytes, 100%, 81.090 kBytes/s, ETA 0s +Errors: 17 (retrying may help) +Checks: 99165 / 99165, 100% +Transferred: 13571 / 13571, 100% +Elapsed time: 1h27m9.9s +2023/11/09 23:34:43 Failed to sync with 17 errors: last error was: failed to open source object: open /home/gmacario/github/gmacario/hassio-gmpowerhorse/config/.storage/core.uuid: permission denied +gmacario@gmpowerhorse:~ $ +``` + TODO \ No newline at end of file