配置OBS存储功能、新搭建obs

2023-11-19

通过应用开发环境与OBS(Object-based Storage Service)对接,实现对象或者Widget资产存储功能。

背景信息

对象存储服务(Object-based Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。

在配置S3存储功能章节我们介绍过如何对接Amazon S3,本节将介绍如何对接OBS。

两者相同点如下:

  • 两者对接的应用场景相同,都是为了实现对象或者Widget资产等的存储功能。
  • 两者在应用开发环境上如何配置Connector的操作步骤相似。

两者差异点如下:

  • 在对接Amazon S3时,您可以在Flow中调用Connector实现对接。
  • 在对接OBS时,您只能通过调用应用开发环境的Rest接口来调用Connector实现对接。

场景描述

向OBS中存储“objectA.txt”文件。

前提条件

请获取如下关键信息:

  • 已获取OBS用户的访问密钥 ID(Access key ID)和秘密访问密钥(Secret access key)。
  • 已获取OBS服务的区域ID。
  • 已在OBS上创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用。

配置Connector操作步骤

  1. 在APP开发界面左侧列表单击,选择“连接 > 连接器”。
  2. 在Connectors配置界面中单击“OBS”图标,打开Connector列表。
  3. 单击“新建”。
  4. 输入与OBS对接的参数,单击“下一步”。图 1 新建Connector

表 1 新建Connector页面参数说明

参数 说明
名称 Connector的名称。示例: TestOBS
访问密钥 OBS用户的访问密钥 ID(Access key ID)。
密钥 OBS用户的秘密访问密钥(Secret access key)。
账号地区 OBS服务的区域ID。
内容分发网络 CDN服务器的地址。通过该配置,您后续访问上传的静态资源时,可不用登录OBS,直接通过CDN访问到静态资源。可选配置。
描述 Connector的描述信息。

5. 选择存储桶,用于选择在OBS上哪个存储桶上进行存储,也可选择多个桶进行存储,这里选择桶“bing.testonly.1”,单击“保存”。

6. (可选)创建Connector后,您可进行简单的测试,测试是否能在存储桶上存储对象。

说明:
该测试只能上传小于1MB字节的对象。

(1)在该Connector详情页面单击存储桶所在行的

(2)单击“点击上传”,选择对象文件,单击“上传”。

图 2 选择对象

(3)单击上传好的文件名,进行下载。打开下载的对象存储文件,查看与上传的对象存储文件是否一致。

调用Connector

1. 调用Rest接口,查询出Connector ID,根据Connector ID,才能调用具体的Connector。其中IP和Port分别是应用开发环境的IP地址和对外服务端口号。

http://IP:Port/u-route/baas/sys/v1.0/connectors?type=obs

该接口用于查询所有创建的OBS类型的Connector的ID。本示例中的查询结果中,找出Connector名称为“TestOBS”的Connector ID为“003W000000FfSV4F5twG”。接下来我们将根据这个ID,调用对接OBS的Connector“TestOBS”。

{
    "resCode": "0",
    "resMsg": "Success",
    "result": [
        {
            "id": "003W000000FfSV4F5twG",
            "name": "TestOBS",
            "type": "obs",
            "createdBy": "10gd000000En2xfeFqQy",
            "createdDate": "2018-04-17 07:23:53",
            "lastModifiedBy": "10gd000000En2xfeFqQy",
            "lastModifiedDate": "2018-04-17 07:33:05",
            "owner": "10gd000000En2xfeFqQy",
            "accessKey": "0ZILHVIXUXXXXXXXXXX",
            "secretKey": "O5ZeitY4dDQlCm4pJf8ow3BcoXXXXXXXXXX",
            "rootRegion": "cn-south-1",
            "buckets": [
                {
                    "name": "bingo.testonly.1",
                    "region": "cn-south-1"
                }
            ],
            "createdBy.name": "Lily",
            "lastModifiedBy.name": "Lily",
            "owner.name": "Lily"
        },
        {
            "id": "003W000000FfSYZ2NIHI",
            "name": "TestB",
            "type": "obs",
            "createdBy": "10gd000000En2xfeFqQy",
            "createdDate": "2018-04-17 07:24:41",
            "lastModifiedBy": "10gd000000En2xfeFqQy",
            "lastModifiedDate": "2018-04-17 07:24:41",
            "owner": "10gd000000En2xfeFqQy",
            "accessKey": "fdas",
            "secretKey": "fdas",
            "rootRegion": "fdsa",
            "buckets": null,
            "createdBy.name": "Lily",
            "lastModifiedBy.name": "Lily",
            "owner.name": "Lily"
        }
    ]
}

2. 通过调用应用开发环境的Rest接口实现与OBS的对接。

Rest接口为:

http://IP:Port/u-route/baas/sys/v1.0/connectors/ConnectorID/action?type=obs&op=action&object=FileName&dir=DirName&bucket=BucketName
参数说明如下:
  • IP:应用开发环境的IP地址。
  • Port:应用开发环境对外提供服务的端口号。
  • ConnectorID:该Connector ID。可通过上一步进行查询。
  • action:具体的动作。如下:listbuckets:列举该存储桶上所有对象文件。putobject:上传对象文件。viewobject:查看对象文件。delobject:删除对象文件。createdir:在存储桶上创建文件目录。listdir:列举该文件目录下所有文件。deldir:删除目录。
  • FileName:待存储到OBS上的文件名,请携带文件类型后缀。可选参数,根据接口动作进行携带。
  • DirName:存储桶上的文件目录名。可选参数,根据接口动作进行携带。
  • BucketName:存储桶名称。可选参数,根据接口动作进行携带。

例如查看存储桶“bingo.testonly.1”上存储对象文件“ObjectA.txt”的Rest接口为:

http://10.136.104.56:21112/u-route/baas/sys/v1.0/connectors/003W000000FfSV4F5twG/action?type=obs&op=viewobject&object=ObjectA.txt&bucket=bingo.testonly.1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置OBS存储功能、新搭建obs 的相关文章

  • 将 GAE/J 上的 pdfjet 生成的 PDF 文件上传到 Google Docs

    我需要将 PDF 文件上传到用户谷歌文档 该文件是由谷歌应用引擎上的 pdfjet 生成的 我想出使用 pdfjet for gae j 生成 pdf pdfjet 使用流来创建 pdf 无论如何 是否可以将流转换为文件 以便我可以上传给用
  • 如何在Android中将文件转换为base64(如.pdf、.text)?

    如何将 SD 卡文档 pdf txt 转换为 Base 64 字符串并将字符串发送到服务器 这个方法对我有用 String encodeFileToBase64Binary encodeFileToBase64Binary yourFile
  • Eclipse 调试“未找到源”

    我刚刚开始使用 Eclipse 所以慢慢来吧 但是 当尝试调试 JUnit 测试用例时 我会收到一个对话框 指出当我在测试方法中的代码中找到此行时 未找到源代码 Assert assertEquals 1 contents size 我知道
  • Spring JSON序列化、Gson反序列化

    我目前在某些内部对象的反序列化方面遇到问题 在春天 我在使用输出之前初始化所有对象 ResponseBody 例如 这是一个响应 id 1 location id 1 extra location data id 2 location 1
  • 如何在线程和小程序中使用双缓冲

    我有一个关于何时调用绘制和更新方法的问题 我有游戏小程序 我想在其中使用双缓冲 但我无法使用它 问题是 在我的游戏中 有一个球在 run 方法内移动 我想知道如何使用双缓冲来交换屏幕外图像和当前图像 请有人帮忙 当同时存在 update 和
  • 如何实现可运行队列

    我正在尝试实现一个可运行队列 在异步任务期间依次执行 意味着队列中的下一个将在另一个完成后执行 我编写了一个管理器来管理这些可运行对象和本身就是可运行对象的任务 然后 我获取异步任务中的第一个任务并运行它 希望它能够在队列中运行 但是它最终
  • Java中单击和双击的区别

    我搜索论坛并看到以下代码 public void mouseClicked MouseEvent e if e getClickCount 2 System out println and it s a double click wasDo
  • 多个罐子、单个持久单元解决方案?

    包括我在内的一些人一直在努力将不同模块 jar 中的实体合并到单个持久性单元中 尤其是JavaSE 例如这里JPA 2 0 自动从不同的 jar 添加实体类到 PersistenceUnit https stackoverflow com
  • json文件格式的升级路径

    我们将 Java 应用程序的用户首选项存储在 JSON 文件中 使用Jackson http jackson codehaus org 随着我们继续开发该应用程序 我们将添加首选项 重命名首选项并删除过时的首选项 当用户将应用程序升级到下一
  • 动态更新 LookAndFeel 值

    我希望能够动态更新 Swing GUI 的 LookAndFeel 属性 在本例中 我有一个简单的 Swing Awt 游戏 运行最初为 Nimbus 的游戏LookAndFeel 在启动后的各个时刻 我只想更改 比方说 一个细节 应用程序
  • 如何在Java中实现复合模式?

    我想实现一个复合模式Java以便绘制软件开发组织图 因此 我们假设有多个项目经理和多个开发人员 每个开发人员都被分配给一位项目经理 并且每个开发人员都能够使用各种编程语言进行编码 项目经理领导开发人员并准确了解他们的工作量 我对这个设计模式
  • 我可以直接在 Maven 中使用 GitHub 项目吗?

    我有兴趣使用GitHub 上的项目 https github com toelen spymemcached jcache作为我的项目中的依赖项 GitHub 项目有一个pom文件 我可以修改我的pom文件来使用这个项目 如果是这样 怎么办
  • 了解 Etc/GMT 时区

    Apple 在从 App Store 返回自动续订订阅收据时使用 Etc GMT 时区的理由是什么 Etc GMT 时区到底是什么 Java SDK 能理解这个时区吗 或者我是否必须使用其他第三方库 例如乔达时间 http www joda
  • 优化两个三位数乘积的最大回文数?

    我正在研究一个面试问题 我被问到这个问题 我应该编写一个程序 从两个三位数的乘积中找到最大的回文数 这里是question https projecteuler net problem 4 我想出了这种从底部开始的蛮力方法 public c
  • 为什么 writeObject 抛出 java.io.NotSerializedException 以及如何修复它?

    我有这个异常 我不明白为什么会抛出它 或者我应该如何处理它 try os writeObject element catch IOException e e printStackTrace Where element is a Transf
  • 部署到 Glassfish 4.1 时 URL 模式无效

    如果用户已经通过身份验证 我有一个网络过滤器可以从登录和索引页面重定向 最初我有一个无效的 URL 模式 我修复了无效模式并尝试重新部署以接收以下内容 java lang IllegalArgumentException Invalid U
  • 如何使用 Java 1.4 和 SAX 将任意数据编码为 XML?

    我们使用 SAX 来解析 XML 因为它不需要将整个 XML 文档读入内存来解析单个值 我读过很多文章 坚持认为 SAX 只能用于解析 解码 XML 而不能创建它 这是真的 不 这不是真的 您可以使用类似于以下内容的方式将 XML 编码为
  • 异步方法的同步版本

    在 Java 中创建异步方法的同步版本的最佳方法是什么 假设您有一个包含这两种方法的类 asyncDoSomething Starts an asynchronous task onFinishDoSomething Called when
  • 返回在 REST 控制器中包装 S3Object.getObjectContent() 的 ResponseEntity 是否安全?

    我正在开发一个 Spring Boot 应用程序 它应该允许用户通过指定的应用程序 REST 接口间接从 Amazon S3 下载文件 为此 我有一个 REST Controller 它向用户返回一个 InputStreamResource
  • 切换按钮形状不变

    我正在尝试制作一个带有绿色背景的圆形切换按钮 我用了

随机推荐

  • web.xml加载顺序

    web xml加载顺序 应用服务器启动时web xml加载过程 至于这些节点在xml文件中的前后顺序没有关系 不过有些应用服务器 我曾碰到过的 websphere就严格要求web xml的节点顺序 否则部署不成功 所以还是赞成按照web x
  • CSS 样式穿透

    1 穿透语法 如果给样式中声明scop 那么页面的类会增加data 562e3wue8等属性 此时就需要用到 gt gt gt 或者 deep 或者 v deep 以后用后两个比较多 如果在样式类前面 v deep 则会自动找到 data
  • 快速搭建一个自己的服务器详解(java环境)

    一 服务器的购买 1 我选择的是阿里云的服务器 学生价9 5元一个月 百度直接搜索阿里云 然后点击右上角登录 推荐大家用支付宝扫码登录 方便快捷 阿里云官网的东西比较多 登录后我找了很久也没有找到学生服务器在哪里卖 最后在咨询里找到了这个网
  • 喜爱夜蒲3_百度百科

    喜爱夜蒲3 百度百科 喜爱夜蒲3
  • LeetCode707.设计链表

    题目描述 707 设计链表 力扣 LeetCode 这道题用单向链表和双向链表都能写 因为对双向链表不是很熟 所以就用双向链表来写了 由于初始化的链表并没有放入任何元素 所以这个结点就当成哑结点来处理 而且这样对之后的增删操作也更便利 C语
  • 通配符的使用

    通配符是一种特殊语句 主要有星号 和问号 用来模糊搜索文件 当查找文件夹时 可以使用它来代替一个或多个真正字符 当不知道真正字符或者懒得输入完整名字时 常常使用通配符代替一个或多个真正的字符 SQL 通配符 在搜索数据库中的数据时 SQL
  • java最大线程数

    Xms 初始堆大小 如 Xms256m Xmx 最大堆大小 如 Xmx512m Xmn 新生代大小 通常为 Xmx 的 1 3 或 1 4 新生代 Eden 2 个 Survivor 空间 实际可用空间为 Eden 1 个 Survivor
  • 华为OD机试 - 经典屏保(Java)

    题目描述 DVD机在视频输出时 为了保护电视显像管 在待机状态会显示 屏保动画 如下图所示 DVD Logo在屏幕内来回运动 碰到边缘会反弹 请根据如下要求 实现屏保Logo坐标的计算算法 屏幕是一个800 600像素的矩形 规定屏幕的左上
  • PermissionError: [WinError 5] 拒绝访问。解决办法

    PermissionError WinError 5 拒绝访问 问题描述 解决办法 一 找到programdata下anaconda3的python 二 进入Users的权限 将除了特殊权限外 全部挂上 三 在返回到anaconda3的目录
  • Nginx-简介

    用Python语言开发的站点使用的Web服务器主要有Nginx Apache以及淘宝的Tengine Nginx是由Igor Sysoev在2004年发布的一个开源 高性能的HTTP服务器和反向代理 它还可以用来作为IMAP POP3的代理
  • K8s基础6——应用配置管理方案、调度策略、污点和污点容忍

    文章目录 一 应用配置管理方案 1 1 ConfigMap 1 1 1 注入变量 1 1 2 挂载数据卷 1 2 Secret 1 2 1 数据卷挂载 1 2 2 变量注入 二 调度策略 2 1 nodeSelector定向调度 2 1 1
  • Github上 10 个开源免费且优秀的后台控制面板

    Web 开发中几乎的平台都需要一个后台管理 但是从零开发一套后台控制面板并不容易 幸运的是有很多开源免费的后台控制面板可以给开发者使用 那么有哪些优秀的开源免费的控制面板呢 我在 Github 上收集了一些优秀的后台控制面板 并总结得出 T
  • HTTP协议(下)

    前面我介绍了什么是HTTP协议 以及HTTP的协议格式 接下来我介绍一下如何使用代码构造出HTTP请求 以及在介绍一下HTTPS 目录 一 通过代码构造HTTP请求 1 基于HTML JS 1 1 基于form表单 1 2 基于ajax 2
  • vue + threejs 给3D模型添加label标签(dom的方式)

    webGL js封装的代码 const THREE window THREE webGL对象配置 export const webglOBJ renderDom null Scene null 场景 camera null 摄像头 rend
  • java OpenOffice把word转html(Convert word to html )

    1 下载安装OpenOffice 网址http download openoffice org index html 2 下载第三方工具包JODConverter http www artofsolving com opensource j
  • 天梯赛字符串替换题 “ 6翻了” Python 正则表达式替换

    输入格式 输入在一行中给出一句话 即一个非空字符串 由不超过 1000 个英文字母 数字和空格组成 以回车结束 输出格式 从左到右扫描输入的句子 如果句子中有超过 3 个连续的 6 则将这串连续的 6 替换成 9 但如果有超过 9 个连续的
  • selenium之 chromedriver与chrome版本映射表(更新至v2.46)

    更多关于python selenium的文章 请关注我的专栏 Python Selenium自动化测试详解 看到网上基本没有最新的chromedriver与chrome的对应关系表 便兴起整理了一份如下 希望对大家有用 chromedriv
  • 包里替换class文件_为了让Tomcat支持热替换,我直接修改了他的源码

    前言 又是一个周日 贫穷的我依然使用电源适配器来暖手 所以 这章来我们聊聊 热 这个问题 啊啊啊啊啊啊 不知道各位网友是怎么解决修改代码后 不重启 立即生效对的 如果在Spring Boot项目中 可能有部分人会加入spring boot
  • DES加密算法详解——看这一篇就够了!

    目录 一 DES简介 二 DES算法入参 三 DES加密算法步骤解析 1 IP置换 M gt M0 2 密钥K控制的16轮运算 M0 K1 K16 gt M16 2 1 子密钥Kn的计算 2 1 1 PC 1置换 2 1 2 循环左移运算
  • 配置OBS存储功能、新搭建obs

    通过应用开发环境与OBS Object based Storage Service 对接 实现对象或者Widget资产存储功能 背景信息 对象存储服务 Object based Storage Service OBS 是一个基于对象的海量存