四、swift大对象--静态态大对象
系列导航
六、java操作swift对象存储(resultful方式实现)
上一章讲解了如何使用动态的大对象,这一章讲解静态大对象。动态大对象和静态大对象有什么区别呢,个人感觉动态大对象的分段存储是由swift帮你完成的,你能操作的空间比较小必须按照它的规则去实现。静态大对象分段信息如何存放比较灵活但是切分数据和存储分段信息要由开发者来完成。两种都可以根据自己的需求去选择吧。
一、你的swift存储是否支持静态大对象。
执行语句: curl http://192.168.22.2:8080/info | python -mjson.tool
如果有红色slo部分说明你的存储已经支持静态大对象。

如果没有需要进行如下配置:
vi /etc/swift/proxy-server.conf
如下两个地方增加slo的服务 注:要注意顺序 顺序错了会报错
#把slo加进去
[pipeline:main]
pipeline = healthcheck cache tempauth proxy-logging slo proxy-server
[filter:slo]
use = egg:swift#slo
max_manifest_segments = 1000
max_manifest_size = 2097152
min_segment_size = 1048576
二、静态大对象实验
1、创建容器
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin post StaticContainer
2、查看容器
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin list
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin list StaticContainer
3、获取口令码
curl http://127.0.0.1:8080/auth/v1.0 -v -H 'X-Storage-User: admin:admin' -H 'X-Storage-Pass: admin'
4、切割
cd /opt
切割harbor-offline-installer-v1.5.0.tgz
split -b 200m harbor-offline-installer-v1.5.0.tgz segment_
5、上传分片数据
curl -v -X PUT -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" -T /opt/segment_aa -D- http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_aa
curl -v -X PUT -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" -T /opt/segment_ab -D- http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ab
curl -v -X PUT -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" -T /opt/segment_ac -D- http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ac
curl -v -X PUT -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" -T /opt/segment_ad -D- http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ad
curl -v -X PUT -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" -T /opt/segment_ae -D- http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ae
查看属性
curl -v -X HEAD -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_aa
curl -v -X HEAD -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ab
curl -v -X HEAD -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ac
curl -v -X HEAD -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ad
curl -v -X HEAD -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/segment_ae
6、创建分片分布信息
manifest.json 内容如下
[
{
"path": "StaticContainer/segment_aa",
"etag": "568b3101e4238291ec42aab183825885",
"size_bytes": 209715200
},
{
"path": "StaticContainer/segment_ab",
"etag": "3ca840e3027e38b8dd72e3a58e079325",
"size_bytes": 209715200
},
{
"path": "StaticContainer/segment_ac",
"etag": "aa32d6c5299aff1968373d06f986d032",
"size_bytes": 209715200
},
{
"path": "StaticContainer/segment_ad",
"etag": "54f6cbe2f6b304bf3cb7e8b4af7dd90d",
"size_bytes": 209715200
},
{
"path": "StaticContainer/segment_ae",
"etag": "d20d5fc6702590a9da38c086218749e6",
"size_bytes": 24886405
}
]
7、上传manifest 分片信息
curl -v -X PUT -H "X-Static-Large-Object: true" -H "X-Auth-Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" "http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/myLargeFile?multipart-manifest=put&heartbeat=on" -T /opt/manifest.json
8、验证分段的数据是否正确
curl -v -X HEAD -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" "http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/myLargeFile"
9、下载大对象
curl -v -X GET -H "X-Auth-Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" "http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/myLargeFile" -o /opt/myLargeFile
10、下载大对象的manifest文件内容
curl -v -X GET -H "X-Auth-Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" "http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/myLargeFile?multipart-manifest=get" -o ./manifestFile
11、删除测试
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin delete StaticContainer myLargeFile --整个文件都会被删除包含所有段文件也都删除
curl http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/myLargeFile -v -X DELETE -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" --只删除了myLargeFile,他关联的段文件都还在
curl http://127.0.0.1:8080/v1/AUTH_admin/StaticContainer/myLargeFile?multipart-manifest=delete -v -X DELETE -H "X-Auth_Token: AUTH_tk997cad0b1e13403a81d338b7e80dcc12" --myLargeFile和他关联的段都删除了
官网:https://docs.openstack.org/swift/queens/overview_large_objects.html 注:讲的不太清楚没有样例

四、swift大对象--静态态大对象的更多相关文章
- JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象
1 什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的 ...
- JavaWeb(三)JSP之3个指令、6个动作、9个内置对象和4大作用域
前言 前面大概介绍了什么是JSP,今天我给大家介绍一下JSP的三个指令.6个动作以及它的9大内置对象.接下来我们就直接进入正题 一.JSP的3个指令 JSP指令(directive)是为JSP引擎而设 ...
- JSP——九大隐藏对象之四大域对象
你一定在你的Jsp文件中的监本片段中使用过以下九个对象的几种:out.config.page.pageContext.exception.request.response.application.se ...
- 高端面试必备:一个Java对象占用多大内存
这个问题一般会出现在稍微高端一点的 Java 面试环节.要求面试者不仅对 Java 基础知识熟悉,更重要的是要了解内存模型. Java 对象模型 HotSpot JVM 使用名为 oops (Ordi ...
- JSP九大隐式对象和四大域对象-----面试
因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...
- 孤荷凌寒自学python第四十二天python线程控制之Condition对象
孤荷凌寒自学python第四十二天python的线程同步之Condition对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天学习了Condition对象,发现它综合了Event对象 ...
- java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
- Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,
Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一.类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文 ...
- JavaWeb学习笔记(十四)—— 使用JDBC处理MySQL大数据
一.什么是大数据 所谓大数据,就是大的字节数据,或大的字符数据.大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 ...
- (四)java对象的结构和对象的访问定位
在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header).实例数据(Instance Data)和对齐填充(Padding). 一. 对象头 HotSpot虚拟机的对象 ...
随机推荐
- 基于uQRCode封装的Vue3二维码生成插件
标题:基于uQRCode封装的Vue3二维码生成插件 摘要:本文介绍了一种基于uQRCode封装的Vue3二维码生成插件,可以在Javascript运行环境下生成二维码并返回图片地址.该插件适用于所有 ...
- 精通TypeScript:打造一个炫酷的天气预报插件
前言 随着数字化和信息化的发展,数据大屏使用越来越广泛,我们不仅需要展示数据,更需要以一种更加美观的方式展示数据.这就必然需要使用到各种图表组件,比如柱状图.饼图.折线图等等.但是有一些效果不太适 ...
- Socket是什么/怎么理解Socket
Socket 先来看一下百度百科对于Socket的介绍:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O ...
- 记录一个MySQL中order by 和 limit 连用导致分页查询不生效的坑
具体现象和这位同学的一致,具体的解决办法也是参考这位同学的做法 参考文章地址:https://www.cnblogs.com/yuluoxingkong/p/10681583.html
- ElasticSearch安装中文分词器(插件)、分词测试
https://github.com/medcl/elasticsearch-analysis-ik 分词测试: https://www.elastic.co/guide/en/elasticsear ...
- Python——Html(语法、格式、段落、文字处理、路径、超链接、图片、视频)
HTML(Hyper Text Markup Language超文本标记语言)用特殊的一种标签把需要特殊展示出来的内容圈起来.这就是标记语言语法规则 <标记>被标记的内容</标记&g ...
- BUUCTF Reverse 新年快乐
下载文件先查壳,可以看到有UPX壳 用upx脱壳 拖到ida pro32,shift+F12查看字符串,看到关键字flag,双击进去 双击然后f5查看伪代码 main函数伪代码 关键函数: strnc ...
- 文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
五.用go语言,考虑一棵用 RB-INSERT 插人 n 个结点而成的红黑树.证明:如果 n>1,则该树至少有一个红结点. 文心一言: 要证明这个问题,我们首先需要理解红黑树的性质.红黑树是一种 ...
- Go 语言为什么不支持并发读写 map?
大家好,我是 frank ,「 Golang 语言开发栈」公众号作者. 01 介绍 在 Go 语言项目开发中,我们经常会使用哈希表 map,它的时间复杂度是 O(1),Go 语言中的 map 使用开放 ...
- 如何实现gif格式图片倒放效果?
不知道大家看电影的时候有没有发现出现过这样的一个神奇场景: 一个子弹竟然从远处飞回到手枪中,整个场景呈现一种时空倒流的感觉? 正文 先来几个有趣的倒放动图娱乐一下~ 猫:我谢谢你们全家 萌娃快乐针 尊 ...