使用s3cmd 2.x 与 Cyberduck 管理在 DigitalOcean Spaces 对象存储中的数据

news2024/9/20 9:18:42

有很多用户在使用 DigitalOcean Spaces 对象存储的过程中,还没有找到一个合适的数据管理工具。其实目前有很多开源工具都可以使用,比如 s3cmd、Cyberduck、rclone、transmit5。Cyberduck 提供了直观的图形用户界面,而 s3cmd 2.x 则擅长于批处理和自动化任务。假设您每天都需要将本地备份文件上传到 Space,并删除超过30天的旧备份。你可以使用 Cyberduck 手动检查备份文件是否已正确上传。然后,编写一个 s3cmd 脚本,该脚本连接到 Space,查找并删除超过30天的旧备份文件。

这次我们将介绍如何在 DigitalOcean Spaces 上配置和使用他们。

s3cmd 是一个免费且开源的命令行工具,它允许用户通过命令行界面与Amazon S3存储服务以及其他兼容S3协议的云存储服务进行交互。

Cyberduck 也是一个免费开源的跨平台云存储服务聚合客户端,支持多种协议,包括FTP、SFTP、WebDAV、Amazon S3、Google Storage、Windows Azure、Rackspace Cloud Files 以及 Google Docs 等。它提供了一个简单的图形用户界面,允许用户通过拖放方式轻松地上传和下载文件,同时支持各种快捷键操作,使得文件管理变得简单高效。Cyberduck 的界面设计直观,操作简便,适合各种水平的用户使用。

DigitalOcean Spaces 对象存储是一种与 S3 兼容的对象存储服务。Spaces 存储桶可让你存储和提供大量数据,其内置 CDN 可最大限度地缩短页面加载时间并提高性能。所以两个工具都可以用于 Spaces 对象存储上。

准备工作

要将 s3cmd 与 DigitalOcean Spaces 结合使用,你需要:

  • s3cmd 版本 2.0.0+ 或更高版本:你可以使用 s3cmd --version 检查你的版本。来自软件包管理器的版本可能已过时,因此建议使用 s3cmd 下载页面 获取最新版本。Homebrew 用户可以使用命令 brew install s3cmd 安装最新版本。
  • Spaces 存储桶的访问密钥:要生成这些密钥,请访问 DigitalOcean 控制面板中的 API 页面。
  • 下载 Cyberduck:访问 Cyberduck 的官方网站下载并安装适合你操作系统的版本。

初始化配置s3cmd

默认情况下,s3cmd 将其配置文件 .s3cfg 存储在运行配置命令的用户的主目录中。.s3cfg 是一个键/值对的纯文本文件,创建后可直接编辑。

运行命令时,s3cmd 使用其默认配置文件中设置的选项。你可以通过在运行的每个命令后附加 -c ~/path/to/config/file 来指定不同的配置。

如果 DigitalOcean 是您使用 s3cmd 连接的主要或唯一提供商,并且你不想每次使用 s3cmd 时都指定其配置文件,请使用以下命令配置默认的 ~/.s3cfg 文件:

s3cmd --configure

如果你已将 s3cmd 与其他服务一起使用,则可以通过添加 -c 标志并提供文件名来创建备用配置文件。配置文件将在你发出命令的目录中创建,因此如果你希望在其他位置创建它,请指定路径。

输入访问密钥(类似于AWS的AccessKey和Secret Key)

脚本首先要求输入访问密钥和密钥。如果你还没有密钥,可以通过访问控制面板的 API 页面为 s3cmd 生成一组密钥。

输入你的密钥,然后接受美国作为默认区域,因为区域信息与 DigitalOcean 无关。如果你愿意,可以使用环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 来存储一组密钥。

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key []: EXAMPLE7UQOTHDTF3GK4
Secret Key []: exampleb8e1ec97b97bff326955375c5
Default Region [US]:
 
 

输入 DigitalOcean 端点

接下来,输入 DigitalOcean Spaces 端点。Spaces 端点命名模式为 <region>.digitaloceanspaces.com,例如 nyc3.digitaloceanspaces.com。使用存储桶所在区域的端点。

Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.
S3 Endpoint [s3.amazonaws.com]: nyc3.digitaloceanspaces.com

下一个提示要求输入 URL 模板以访问你的存储桶。由于 Spaces 支持基于 DNS 的端点 URL,因此你可以使用变量 `%(bucket)s` 来代替存储桶的名称。输入以下模板格式,格式与所写完全相同:`%(bucket)s.nyc3.digitaloceanspaces.com`。同样,如果你的存储桶位于其他区域,你需要更改此格式。

各区域代码:

Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars c
an be used if the target S3 system supports dns based buckets.
DNS-style bucket+hostname:port template for accessing a bucket []: %(bucket)s.nyc3.digitaloceanspaces.com
 

可选择项:设置加密密码

下一个提示是用于设置一个可选的加密密码。与仅在传输过程中保护文件的 HTTPS 不同,GPG 加密可以防止他人在文件传输和存储在 DigitalOcean 上时读取文件。现在设置密码不会自动加密对象,它只是使以后可以使用加密功能。无需特殊需求,一般可以跳过这一步。

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
 

下一个提示要求输入 GPG 程序的路径。在 Linux 上,你可以按 ENTER 键接受默认路径。如果你在 macOS 上按照这些说明进行操作,可能需要使用 Homebrew(brew install gpg)安装 GPG。然后,你可以使用 which gpg 找到 GPG 的路径。

Path to GPG program [/usr/bin/gpg]:

使用 HTTPS 连接

下一个提示要求使用 HTTPS 协议。HTTPS 可以保护数据在传输过程中不被读取。

由于 DigitalOcean Spaces 不支持未加密的传输,所以你必须使用 HTTPS。按 ENTER 键接受默认设置即可。

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [Yes]: Yes

可选择项:设置代理服务器

最后一个提示是用于设置 HTTP 代理服务器。如果你的网络需要代理,请输入其 IP 地址或域名,不包括协议,例如 203.0.113.1proxy.example.com。如果你不使用代理,请按 ENTER 键跳过此步骤。

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name:

确认、测试和保存设置

在提示输入 HTTP 代理服务器名称后,配置脚本会提供使用的值的相关摘要,然后提供测试这些值的机会:

New settings:
 Access Key: EXAMPLES7UQOTHDTF3GK4
 Secret Key: b8e1ec97b97bff326955375c5example
 Default Region: US
 S3 Endpoint: nyc3.digitaloceanspaces.com
 DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.n
yc3.digitaloceanspaces.com
 Encryption password: secure_password
 Path to GPG program: /usr/bin/gpg
 Use HTTPS protocol: True
 HTTP Proxy server name:
 HTTP Proxy server port: 0
Test access with supplied credentials? [Y/n] Y

测试成功完成后,输入Y保存设置:

Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)
Save settings? [y/N] Y

如果测试失败或你选择 N,你将有机会重试配置。保存配置后,你会收到其位置的确认。

Configuration saved to '/home/sammy/nyc3'

s3cmd的一些使用示例

由于s3cmd是一个命令行工具,所以我们在这里例举一些比较常用的命令,如果大家需要更详细的命令行案例可以查阅官方文档。

列出 Buckets和文件

列出(List )所有的 buckets

s3cmd ls

按顺序列出 buckets 中的文件

s3cmd ls s3://spacename s3://secondspace

列出所有 bucket 中的所有文件

s3cmd la --recursive

将文件上传到bucket

使用put命令将文件从本地计算机复制到存储桶。在所有这些命令中,都必须以斜杠为结尾。

上传一个文件

当你添加尾部斜杠时(如下例所示),将附加原始文件名。如果你省略斜杠,则文件将以新名称复制到存储桶中的path

s3cmd put file.txt s3://spacename/path/

给文件设置新名称

将文件放入存储桶后,你可以通过在路径末尾键入新名称来更改文件的名称,如下所示:

s3cmd put file.txt s3://spacename/newname.txt

上传多个文件

s3cmd put file1.txt file2.txt path/to/file3.txt s3://spacename/path/

将所有文件放在当前目录中

使用 *put将当前工作目录中的所有内容按顺序复制到你的存储桶中:

s3cmd put * s3://spacename/path/ --recursive

你可以通过添加 --acl-public 来一次性为所有文件设置公共权限,同样地,你可以使用 --add-header(如 --add-header=Cache-Control:max-age=86400)来设置元数据:

s3cmd put * s3://yourfolder --acl-public --add-header=Cache-Control:max-age=86400 --recursive

将文件保存到本地计算机

使用get命令将文件从存储桶复制到本地计算机。以下是三个常用的命令行。

获取一个文件

s3cmd get s3://spacename/path/to/file.txt

获取目录中的所有文件

要获取多个文件,s3 地址必须以斜杠结尾,并且命令结尾需要有--recursive

s3cmd get s3://spacename/path/ --recursive

以新名称保存文件

put命令一样,get命令可以给文件设置新的名字。

s3cmd get s3://spacename/file.txt newfilename.txt

将Cyberduck 链接到 DigitalOcean

要从 Cyberduck 连接到 DigitalOcean,请单击打开连接图标,然后选择Amazon S3

选择了 Amazon S3 后,它将打开一个新窗口:

服务器一栏,填写区域,例如nyc3digitaloceanspaces.com。然后分别在访问密钥 ID密码字段中输入你的访问密钥和密钥。填写完毕后,选择“connect”

Cyberduck 的使用相当简单,你可以在里面点击“Action”按钮,然后选择新建文件夹、上传文件等操作。这个工具相比 s3cmd,更适合日常使用。如果需要批量处理数据,那建议还是使用s3cmd。

以上便是本篇教程全部内容。如果你在使用 DigitalOcean 对象存储或其它服务的过程中遇到问题,可以联系 DigitalOcean 中国区独家战略合作伙伴卓普云。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么搭建AI带货直播间生成虚拟主播?

随着电商直播带货的热潮不断升温&#xff0c;虚拟主播逐渐崭露头角&#xff0c;成为电商直播领域的新宠&#xff0c;相较于真人主播&#xff0c;虚拟主播具备无档期风险、人设稳定可控、24小时不间断直播等显著优势。 本文将深入探讨如何搭建一个AI带货直播间&#xff0c;并详…

最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台

简介&#xff1a; 最新小猫咪PHP加密系统源码V1.4_完全本地化加密API接口_带后台 小猫咪PHP加密系统历时半年&#xff0c;它再一次迎来更新&#xff0c;更新加密算法&#xff08;这应该是最后一次更新加密算法了&#xff0c;以后主要更新都在框架功能上面了&#xff09;&…

在WordPress上启用reCAPTCHA的指南

随着网络安全问题的日益严重&#xff0c;网站管理员必须采取措施保护自己的网站免受恶意攻击。对于WordPress用户来说&#xff0c;可以通过启用谷歌的reCAPTCHA功能来增强网站的安全性。本文将介绍两种在WordPress上启用reCAPTCHA的方法&#xff1a;使用插件和手动添加代码。 一…

Git基础:使用指南

Git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地&#xff0c;每个开发者通过克隆&#xff0c;在本地机器上拷贝一个完整的Git仓库。 一、版本管理 1.1 创建版本库 版…

大模型的架构参数是指定义模型基本结构和组成的各种参数,这些参数对模型的性能、训练效率和泛化能力具有重要影响。以下是对大模型架构参数的详细介绍

大模型架构参数 大模型的架构参数是指定义模型基本结构和组成的各种参数&#xff0c;这些参数对模型的性能、训练效率和泛化能力具有重要影响。以下是对大模型架构参数的详细介绍&#xff1a; 一、基本结构和组成 层数&#xff1a;模型的层数是指模型中全连接网络或特定结构…

vue3直播视频流easy-player

vue3直播视频流easy-player <script src"/easyPlayer/EasyPlayer-element.min.js"></script> easyPlayer文件下载地址 https://download.csdn.net/download/weixin_42120669/89605739 <template><div class"container"><div …

Vue进阶之Vue无代码可视化项目(九)

Vue无代码可视化项目—补充内容 背景介绍、方案设计Canvas Table创建一个新的vue项目普通表格的效果Canvas上手Canvas画表格-画基本表格CanvasTable处理事件系统CanvasTable表格滚动Vue组件封装思想拖拽组件 —smooth-dndDndDemo1.vueDndContainer.jsCanvasTable封装CanvasTabl…

LDR6020 iPad皮套一体式键盘充电方案解析

在移动办公与学习的浪潮中&#xff0c;iPad凭借其强大的性能与便携性&#xff0c;成为了越来越多人的首选设备。然而&#xff0c;随着工作与学习任务的日益复杂&#xff0c;单一的触控操作已难以满足高效、精准的需求。因此&#xff0c;搭配一款优秀的键盘成为了提升iPad使用体…

月木学途开发 3.1搭建CentOS虚拟机

安装CentOS 下载地址 &#xff1a;https://mirrors.aliyun.com/centos-vault/?spma2c6h.13651104.0.0.5f6612b2O7Cy9G 选择7.6.1810——isos——x86_64——CentOS-7-x86_64-DVD-1810.iso 安装 VMWare虚拟机 下载 下载地址&#xff1a;https://www.vmware.com/products/desktop…

分享c语言中一些实用的函数2

目录 一.头文件 1.sqrt()函数 2.sin&#xff0c;cos&#xff0c;tan函数 附加:宏定义π 3.exp函数 4.fabs函数 5.fmax函数 6.floor函数 7.log函数 附加&#xff1a;求一个数是几为数(运用floor函数和log函数) 8.pow函数 二.头文件 1.abs函数 附加: 一.头文件<…

详解HTTP协议版本(HTTP/1.0、1.1、2.0、3.0区别)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

数据采集器

目录 1. 采集Redis 2. 采集MySQL 3. 采集容器 1. 采集Redis 出口商和集成 |普罗 米修斯 (prometheus.io) 发布 奥利弗006/redis_exporter (github.com) 在目标机器上安装redis 上传redis采集器包redis_exporter-v1.53.0.linux-amd64.tar.gz [rootharbor opt]# tar -xf …

web3 solana

网址&#xff1a;HACKQUEST 学习初衷&#xff1a; 1.web3概念较为小众&#xff0c;相比于web2&#xff0c;机会较多 2.有机会remote work&#xff0c;带着笔记本到处浪&#xff0c;听着就不错 3.面对越来越卷的国内&#xff0c;有机会并有能力拥抱国外job&#xff0c;感觉是…

安卓车载多屏互动副屏底部有黑线条NavigationBar分析

背景&#xff1a; 在学习了马哥的wms和多屏互动课程后&#xff0c;大家普遍都可以跟着做出如下图效果的多屏互动&#xff1a; 其实初略来看这个成果已经完成一个多屏互动项目大部分功能&#xff0c;但是其实还是有一些bug的存在&#xff0c;今天我们就来分析一下多屏互动相关的…

FPGA实现SDI视频接收转USB3.0传输,GS2971+FT601方案,提供4套工程源码和QT上位机源码

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的FPGA驱动USB通信方案FPGA基于GS2971的SDI视频解码方案FPGA基于FT601的USB3.0视频传输方案 3、详细设计方案设计原理框图SDI 相机GS2971-SDI解码芯片解读BT1120转RGB888图像缓存FT601-USB3.0芯…

计算机毕业设计选题推荐-校内跑腿业务系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

深入理解操作系统--绪论

文章目录 概述操作系统的基本概念多用户系统用户和组进程 小结 概述 最近在读操作系统&#xff0c;发现一些新的概念。写出来&#xff0c;让自己印象更深&#xff0c;希望也帮助一些不懂的朋友&#xff1b;但愿有所帮助吧。 操作系统的基本概念 计算机都包含操作系统的基本程…

自动化测试的回归策略!

在快速迭代的软件开发过程中&#xff0c;确保软件质量的稳定性和可靠性是每一个开发团队都面临的重要挑战。其中&#xff0c;回归测试作为验证软件变更后是否仍然满足原有需求的重要手段&#xff0c;其重要性不言而喻。而自动化测试的回归策略&#xff0c;正是为了应对这一挑战…

学习记录——day25 多线程编程 临界资源 临界区 竞态 线程的同步互斥机制(用于解决竟态)

目录 ​编辑 一、多进程与多线程对比 二、 临界资源 临界区 竞态 例1&#xff1a;临界资源 实现 输入输出 例2&#xff1a;对临界资源 进行 减减 例子3&#xff1a;临界资源抢占使用 三、线程的同步互斥机制&#xff08;用于解决竟态&#xff09; 3.1基本概念 3.2线…

C#实现数据采集系统-系统优化服务封装

系统优化-服务封装 现在我们调用modbustcp和mqtt都直接在Program,所有加载和功能都混合在一起,比较难以维护 类似asp.net core项目的Program.cs代码如下,构建服务配置和启动 要实现的效果,Main方法中就是一个服务启动,只需要几行代码 分析代码 这里分成两部分,一…