• 文档
  • 控制台
  • 登录
  • 立即注册
    目前不支持用户自主注册,如需注册账号,请联系400-080-1100
对象存储 OSS
下载PDF

4 最佳实践

4.1 对象存储OSS数据迁移

您可以将同一个账号下的OSS某个存储空间(Bucket)的数据迁移至另一个Bucket,还可以跨不同账号迁移OSS Bucket之间的数据。

OSS Bucket之间的数据迁移包含以下场景:

同账号下的OSS数据迁移,即同一个账号下相同或者不同地域Bucket之间的数据迁移。具体步骤,请参见3.6.2同区域复制功能迁移同账号下的OSS数据。 

跨账号下的OSS数据迁移,即不同账号下相同或不同地域Bucket之间的数据迁移。具体操作,请参见3.6.1跨区域复制功能迁移服务跨账号迁移OSS数据。

4.2 资源隔离

如果您希望让不同的角色,访问不同的资源Bucket,可以通过如下方式实现。 首先需要在主账户下创建不同的子账户,然后创建多个用于资源隔离的Bucket,例如,按照业务类型、子公司区分存储空间。最后给某个子账户授权对应的Bucket的权限。

企业日常有大量工作文件需要存档,但并不希望花费大量的人力、物力在存储资源上。因此该企业可以开通OSS服务,用于存储日常工作文件,并为不同职能部门的员工设置不同的访问权限,以此达到不同部门人员访问公司数据的权限隔离。

例如,一家企业的管理员拥有一个IAM主账号,并且使用IAM主账号创建了3个Bucket:Bucket1、Bucket2、Bucket3,分别存放A、B、C三个业务部门的文件和数据。为了便于不同部门的资源管理员查看或操作这些文件,在主账号下创建了3个子账号:子账号A、子账号B、子账号C,并且授予子账号A访问Bucket1,子账号B访问Bucket2,子账号C访问Bucket3。这样,被授权的资源管理员就可以使用子账号登录OSS控制台,并且只能查看或操作相关权限的文件和数据了。

这里的授权策略需要通过IAM自定义策略进行更细粒度的用户授权。

例如,如果希望某个子帐户A访问Bucket1中的文件(访问的含义是:可以对Bucket1进行管理和对Bucket1里的文件进行读写删除等操作),那么先创建的自定义策略,然后把策略授权给子账户A,自定义策略如下:

{

     "Statement":[

         {

             "Resource":[

                 "pcs:OSS:*::bucket/"

             ],

             "Action":[

                 "OSS:*",

                 "payment:ListQueryBalanceForOrder",

                 "payment:ListAvailableCoupons",

                 "payment:ListActivate"

             ],

             "Effect":"Allow"

         }

     ],

}

4.3 工具使用指南

4.3.1 常用工具汇总

您除了通过控制台使用对象存储OSS外,还可以使用如下工具进行管理操作。

表4-1常用工具

image.png

4.3.2 S3 Browser

4.3.2.1 S3 Browser简介

工具简介

S3 Browser是一款用于访问和管理对象存储的图形化工具,提供全面的桶管理和对象管理操作,可以非常方便地在本地对对象存储进行管理。

对象存储OSS兼容S3 API,您可以使用S3 Browser管理OSS。

支持的管理操作

image.png

4.3.2.2 安装S3 Browser

简介

S3 Browser分为公开版和专业版客户端,本小节主要介绍免费版客户端安装指导。

环境要求

适用于 Windows XP/Vista/7/8/10/11 和 Windows Server 2003/2008/2012/2016/2019/2022。

操作步骤

(1)下载免费版的安装包。

(2)运行“s3browser-xxx.exe”。

(3)参考安装指引,完成工具安装。

4.3.2.3 配置S3 Browser并接入OSS

简介

首次启动S3 Browser客户端,您需创建客户端账号并接入OSS。

前提条件

已在个人信息页面获取密钥对。

已打通S3 Browser客户端与对象存储服务控制台区域网络。

1.获取Endpoint和密钥信息

(1)登录对象存储服务控制台。

(2)获取服务域名。

a.选择目标存储桶,单击存储桶的名称,进入文件列表页面。

b.选择“概览”页签,获取Endpoint信息。

(3)获取访问密钥。

a.进入控制台个人信息页面。

b.在下方“访问密钥管理”页签,单击“添加访问密钥”,弹出添加访问密钥窗口。

c.单击“确定”,弹出下载访问密钥窗口。

d.单击“立即下载”,下载密钥文件,获取Access Key和Secret Access Key。

2.创建账号

(1)打开客户端。

(2)选择“Accounts > Add New Account”,弹出创建账号窗口。

(3)配置账号信息。

image.png

image.png

(4)确认信息无误后,单击“Add new account”,进入桶管理窗口,等待客户端加载远程桶列表。

4.3.2.4 使用S3 Browser管理桶

简介

本小节主要介绍OSS桶的基本管理操作,包括创建桶、设置桶读写权限、删除桶、设置桶生命周期管理等。

说明

由于该工具仅支持选择同一区域桶,故不支持“设置跨域控制”功能。

更多桶高级管理功能,需使用该工具专业版才能实现,请参见https://s3browser.com/。

前提条件

已创建客户端账号。

S3 Browser客户端与控制台之间网络畅通。

1.创建桶

(1)登录客户端,并切换到目标账号管理窗口。

(2)单击“New bucket”,弹出创建桶配置窗口。

(3)配置桶信息。

image.png

(4)确认信息无误后,单击“Create new bucket”,完成桶创建操作。

2.设置桶读写权限

(1)登录客户端,并切换到目标账号管理窗口。

(2)选择目标桶,右键展开桶操作列表,单击“Edit Permissions(ACL)”,展开桶权限配置窗口。

(3)在“Owner”、“All User”等用户权限管理列表,分别勾选相应权限,完成读写权限配置。

3.删除桶

说明

请确保已备份桶内数据,并已清空桶无任何文件。

已删除桶内图片样式和取消桶跨域控制设置,并已停止桶任何操作。

(1)登录客户端,并切换到目标账号管理窗口。

(2)选择目标桶,右键展开桶操作列表,单击“Delete Bucket”,弹出删除桶确认窗口。

(3)输入桶名称并勾选删除说明。

(4)单击“Delete Bucket”,确认删除桶。

4.设置桶生命周期管理

说明

目前仅支持删除对象,暂不支持删除碎片。

(1)登录客户端,并切换到目标账号管理窗口。

(2)选择目标桶,右键展开桶操作列表,单击“Lifecycle Configuration”,弹出桶生命周期配置窗口。

(3)分别在“Filter”、“Transition/Expiration actions”和“Bucket lifecycle rules”页签,配置对象名称过滤条件、配置过期时间、配置删除规则。

(4)单击“Save”,完成配置。

4.3.2.5 使用S3 Browser管理对象

简介

本小节主要介绍OSS对象的基本管理操作,包括列举对象、上传对象、下载对象、删除对象等。

说明

暂不支持设置文件读写权限。

更多对象管理功能,需使用该工具专业版才能实现,请参见https://s3browser.com/。

前提条件

已创建客户端账号,并已创建桶。

S3 Browser客户端与控制台之间网络畅通。

1.列举对象

(1)登录客户端,并切换到目标账号管理窗口。

(2)在桶列表区域,单击目标桶,展开桶对象列表窗口。

即可查看桶对象、创建文件夹、上传文件、下载文件、删除文件等。

2.上传对象

说明

支持分段式上传文件。

支持上传大于1GiB的文件。

(1)登录客户端,并切换到目标账号管理窗口。

(2)在桶列表区域,单击目标桶,展开桶对象列表窗口。

(3)单击“Upload”,选择本地文件或文件夹,并确认上传文件。

3.下载对象

(1)登录客户端,并切换到目标账号管理窗口。

(2)在桶列表区域,单击目标桶,展开桶对象列表窗口。

(3)选择目标文件或文件夹,单击“Download”,选择本地存储路径,完成下载。

4.删除对象

说明

支持删除文件和文件夹。

(1)登录客户端,并切换到目标账号管理窗口。

(2)在桶列表区域,单击目标桶,展开桶对象列表窗口。

(3)选择目标文件或文件夹,单击“Delete”,弹出删除对象确认窗口。

(4)输入对象名称并勾选删除说明。

(5)单击“Delete”,确认删除对象。

4.3.3 S3cmd

4.3.3.1 S3cmd简介

工具简介

S3cmd是一款管理S3协议的对象存储服务的命令行客户端,可用于对象存储OSS的配置管理操作,包括创建桶、上传文件、下载文件、删除文件等。此外,通过命令行可执行批处理脚本、自动化任务。S3cmd基于Python编写的开源项目,可免费用API级别的开发、调试场景。更多S3cmd介绍,请参见https://s3tools.org/s3cmd。

对象存储OSS兼容S3 API,您可以使用S3cmd管理OSS。

支持的管理操作

image.png

4.3.3.2 安装S3cmd

简介

S3cmd支持在Linux(Fedora,RedHat,CentOS,Ubuntu,Debian等)和macOS系统上运行。

本小节主要介绍如何在Linux服务器上安装S3cmd。更多S3cmd包安装说明,请参见https://github.com/s3tools/s3cmd/blob/master/INSTALL.md。

前提条件

已创建并启用Linux服务器。

已在服务器上安装yum工具。

已在服务器上成功安装合适版本Python,S3cmd兼容Python 2.6及以上版本。

已在对象存储控制台创建存储桶,并获取桶信息。

已在对象存储控制台创建访问密钥,并获取密钥信息。

操作步骤

(1)使用root用户账号登录Linux云服务器。

(2)安装S3cmd。

CentOS 7环境

    $ sudo yum -y install s3cmd

Ubuntu16.04环境

    $ sudo apt-get install s3cmd

(3)执行如下命令生成默认配置文件s3cfg,输入“Enter”并跳过认证配置,保存配置文件。

    $ s3cmd --configure

(4)修改如下配置文件。

    $ vim /root/.s3cfg

    access_key = [Access_Key_ID]

    secret_key = [Access_Key_Secret]

    host_base = [IP:Port]

    host_bucket = [bucket_endpoint]

    use_https = False

配置文件参数说明

image.png

4.3.3.3 使用S3cmd管理OSS

简介

S3cmd基本语法为:s3cmd [options] COMMAND [paIAMeters]

通过执行s3cmd -h可查看所有选项和命令,更多S3cmd使用方法,可参见基本操作方法和S3同步操作方法。

支持的管理操作

image.png

4.3.4 S3fs 62

4.3.4.1 S3fs简介

工具简介

S3fs是一款基于FUSE文件系统的开源工具,支持在Linux、macOS或FreeBSD的本地文件系统挂载S3存储桶。挂载成功后,可将存储桶当作一个系统文件夹使用,并不改变存储数据访问方式。更多S3fs的详细介绍,请参见https://github.com/s3fs-fuse/s3fs-fuse。

对象存储OSS兼容S3 API,您可以使用S3fs挂载OSS存储桶,实现在不修改已有应用系统的场景下直接使用OSS,可用于将传统应用快速迁移上云。

性能限制

由于S3fs实际上是基于S3对象存储OSS提供的目录访问接口,因此不能简单的把S3fs挂载的文件系统与本地文件系统等同使用。

从访问性能上来比较,通过S3fs挂载的文件系统间接访问存储桶,不如使用SDK或CLI接口直接访问存储桶的效率高。

从安全性能上来比较,以本地配置文件方式保存访问密钥,不如使用组织管理用户方式的安全性高。

4.3.4.2 安装和配置S3fs

简介

S3fs支持在Linux、macOs或FreeBSD的本地文件系统挂载S3存储桶。

本小节主要介绍如何在Linux云服务器上安装和配置S3fs。

安装准备

已创建并启用Linux服务器。

已在服务器安装Git工具。

已创建并获取访问密钥。

安装S3fs

(1)使用root用户账号登录Linux云服务器。

(2)安装依赖包。

    CentOS 7环境

    $ sudo yum install epel-release

    $ sudo yum install s3fs-fuse

    Ubuntu16.04环境

    $ sudo apt install s3fs

(3)检查S3fs是否安装成功。

    $ s3fs

    s3fs: missing BUCKET argument.

    Usage: s3fs BUCKET:[PATH] MOUNTPOINT [OPTION]...

    $ which s3fs

    /usr/local/bin/s3fs

创建并设置访问密钥

(4)创建访问密钥文件。

    echo [Access_Key_ID]:[Access_Key_Secret] > ~/.passwd-s3fs

(5)设置密钥文件仅能被当前用户访问。

    chmod 600 ~/.passwd-s3fs

4.3.4.3 挂载OSS存储桶

简介

本小节主要介绍如何手动挂载存储桶至Linux服务器的本地目录。

前提条件

已获取桶访问信息。

已打通安装S3fs的服务器与存储桶所在区域之间网络。

需在服务器本地hosts文件中,配置存储桶所在区域IP与访问地址(bucket_name.endpoint)的映射。

已安装和配置 S3fs。

操作步骤

(1)使用root用户账号登录Linux云服务器。

(2)创建本地挂载目录。

    mkdir /temp

(3)挂载存储桶至目标目录。

    s3fs [bucket_name] [file_path] -o passwd_file=[aksk] -o url="[bucket_endpoint]"

image.png

(4)查看挂载结果。

    $ df -h

    Filesystem Size Used Avail Use%Mounted on

    /dev/xvda1 30G 1.2G 28.8G 4% /

    devtmpfs 488M 56K 488M 1% /dev

    tmpfs 498M 0 498M 0% /dev/shm

    s3fs 256T 0 256T 0% /temp

    $ cd /temp

    $ ls -l

    total 1

    -------- 1 root root 355 Oct 18 15:13 aaaa.txt

意见反馈

文档内容是否对您有帮助?

如您有其他疑问,您也可以通过在线客服来与我们联系探讨 在线客服

联系我们
回到顶部