O Cyberduck é um gerenciador de arquivos que oferece suporte aos protocolos FTP, SFTP, OpenStack Swift e Amazon S3, tornando conveniente trabalhar com armazenamento em nuvem. No perfil do Cyberduck da Hostman, é utilizado o protocolo OpenStack Swift.

C:\Program Files\Cyberduck\profiles).
Janela "Open Connection" na interface do Cyberduck
your_hostman_login:swift
Depois de conectar, você verá uma lista dos buckets criados.
O Cyberduck também oferece uma versão de console para Windows. Você pode instalá-la usando o gerenciador de pacotes Chocolatey:
choco install duck
Após o download, baixe o arquivo de perfil da Hostman nas configurações do bucket no painel de controle e coloque-o no diretório C:\Program Files\Cyberduck\profiles.


~/Library/Group Containers/G69SCX94XU.duck/Library/Application Support/duck/Profiles
your_hostman_login:swift
Depois de conectar, você verá uma lista dos buckets criados.
Você também pode usar a versão de console do Cyberduck. É possível instalá-la com o Homebrew.
Execute o seguinte comando para baixar a versão mais recente do instalador:
brew install duck
Baixe o arquivo de perfil da Hostman e adicione-o ao Cyberduck.

Para Linux, você pode usar a versão de console do Cyberduck.
Adicione o repositório do duck:
echo -e "deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main" | sudo tee /etc/apt/sources.list.d/cyberduck.list > /dev/null
Baixe a chave pública GPG de keyserver.ubuntu.com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
Atualize o repositório:
sudo apt-get update
Instale o CLI do Cyberduck:
sudo apt-get install duck
Crie um diretório para perfis:
mkdir -p ~/.duck/profiles
Baixe o perfil da Hostman:
wget -O ~/.duck/profiles/hostman.cyberduckprofile https://st.hostman.com/cloud-static/hostman/hostman.cyberduckprofile
Os comandos seguem este formato:
duck <generic_option> <argument> hostman:/<bucket_name> --username <login>:swift --password <password>
Onde:
<generic_option>: uma opção adicional, como --verbose ou --retry.<argument>: um argumento do utilitário duck. Você pode obter a lista completa de argumentos e opções executando duck --help.<bucket_name>: o nome do bucket.<login>: o login da sua conta Hostman. No parâmetro --username, você deve sempre informar o login e swift separados por dois pontos, por exemplo: xg60398:swift.<password>: a senha do armazenamento, que você pode copiar na aba Cyberduck.Exemplo:
duck --list hostman:/7ebe7c09-90e3e6df-c3e1-4bd2-bb6f-166b49bb32f8 --username xg60398:swift --password gUAD0KCFhsGfbV2Arfhe9y5CAA4i8tLBqNyzAUW8
Para obter uma lista de arquivos em um bucket, use o argumento --list ou -l:
duck --list hostman:/<bucket_name> --username <login>:swift --password <password>
Para baixar um arquivo para o seu dispositivo local, use o argumento -d:
duck -d hostman:/<bucket_name> --username <login>:swift --password <password>
Use o argumento --edit para abrir um arquivo para edição, fazer alterações e salvar a versão atualizada de volta no bucket:
duck --edit hostman:/<bucket_name> --username <login>:swift --password <password>
Para enviar um arquivo para o armazenamento, use --upload:
duck --upload hostman:/<bucket_name> <local_file_name> --username <login>:swift --password <password>
Para copiar um arquivo de um bucket para outro, use --copy, especificando primeiro o local atual do arquivo e depois o novo local no bucket de destino:
duck --copy hostman:/<current_bucket_name>/<file_path> hostman:/<new_bucket_name>/<file_path> --username <login>:swift --password <password>
Para fazer backup regularmente de arquivos de um diretório específico para o armazenamento, você pode criar uma tarefa Cron usando o seguinte script:
#!/bin/bash
USERNAME=<login>
PASSWORD=<password>
BACKUP_PATH=<bucket_name>/<directory_path>
LOCAL_PATH=<local_directory_path>
duck --upload "hostman:/${BACKUP_PATH}" "${LOCAL_PATH}" --existing rename --username "${USERNAME}:swift" --password "${PASSWORD}" -q -y
O argumento --existing especifica o que fazer com arquivos existentes. O exemplo acima usa a opção rename, que renomeia uma cópia existente adicionando a hora e a data. Outras opções incluem:
overwrite para substituir o arquivo existente pela nova versão.skip para enviar apenas arquivos novos adicionados após o último upload, ignorando até mesmo duplicatas modificadas.compare para backup diferencial, que substitui a versão antiga pela nova se elas diferirem em tamanho, data de modificação ou checksum.Exemplo:
duck --upload hostman:/<bucket_name>/<directory_path> <local_directory_path> --existing compare --username <login>:swift --password <password>
Para obter informações sobre todas as opções disponíveis, use:
duck --help
A opção --synchronize permite sincronizar o conteúdo de um diretório local com um diretório no armazenamento. Quaisquer alterações, adições ou exclusões feitas localmente serão refletidas no armazenamento e vice-versa, resultando em ambos os diretórios com um conjunto de arquivos idêntico na mesma versão.
Exemplo:
duck --synchronize hostman:/<bucket_name>/<directory_path> <local_directory_path> --username <login>:swift --password <password>
Para executar a sincronização automaticamente e manter as cópias de arquivos no armazenamento atualizadas, você pode criar uma tarefa Cron com o seguinte script:
#!/bin/bash
USERNAME=<login>
PASSWORD=<password>
BACKUP_PATH=<bucket_name>/<directory_path>
LOCAL_PATH=<local_directory_path>
duck --synchronize "hostman:/${BACKUP_PATH}" "${LOCAL_PATH}" --username "${USERNAME}:swift" --password "${PASSWORD}" -q -y