系列导航

一、swift对象存储环境搭建

二、swift添加存储策略

三、swift大对象--动态大对象

四、swift大对象--静态态大对象

五、java操作swift对象存储(官网样例)

六、java操作swift对象存储(resultful方式实现)

七、java操作swift对象存储(动态大对象)

八、java操作swift对象存储(静态大对象)

上一章讲解了如何使用动态的大对象,这一章讲解静态大对象。动态大对象和静态大对象有什么区别呢,个人感觉动态大对象的分段存储是由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大对象--静态态大对象的更多相关文章

  1. JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象

    1 什么是JSP   1)为什么说,Servlet是一个动态Web开发技术呢?     Servlet是基于服务端的一种动态交互技术,     HttpServletRequest表示客户端到服务端的 ...

  2. JavaWeb(三)JSP之3个指令、6个动作、9个内置对象和4大作用域

    前言 前面大概介绍了什么是JSP,今天我给大家介绍一下JSP的三个指令.6个动作以及它的9大内置对象.接下来我们就直接进入正题 一.JSP的3个指令 JSP指令(directive)是为JSP引擎而设 ...

  3. JSP——九大隐藏对象之四大域对象

    你一定在你的Jsp文件中的监本片段中使用过以下九个对象的几种:out.config.page.pageContext.exception.request.response.application.se ...

  4. 高端面试必备:一个Java对象占用多大内存

    这个问题一般会出现在稍微高端一点的 Java 面试环节.要求面试者不仅对 Java 基础知识熟悉,更重要的是要了解内存模型. Java 对象模型 HotSpot JVM 使用名为 oops (Ordi ...

  5. JSP九大隐式对象和四大域对象-----面试

    因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...

  6. 孤荷凌寒自学python第四十二天python线程控制之Condition对象

     孤荷凌寒自学python第四十二天python的线程同步之Condition对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天学习了Condition对象,发现它综合了Event对象 ...

  7. java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

    Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...

  8. Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,

    Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一.类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文 ...

  9. JavaWeb学习笔记(十四)—— 使用JDBC处理MySQL大数据

    一.什么是大数据 所谓大数据,就是大的字节数据,或大的字符数据.大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 ...

  10. (四)java对象的结构和对象的访问定位

    在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header).实例数据(Instance Data)和对齐填充(Padding). 一. 对象头 HotSpot虚拟机的对象 ...

随机推荐

  1. 公司oa是什么?一般公司oa有什么样功能?

    公司OA(Office Automation)是指通过计算机和信息技术来实现办公自动化的系统. 它提供了一系列的功能和工具,用于协调.管理和处理公司内部的日常事务和流程.OA系统旨在提高工作效率.加强 ...

  2. 解决启动Typora时候,出现This beta version of Typora is expired,please download and install a newer version.

    一.问题说明 出现以下问题说明,该软件进行了对系统的时间检测,如果是最新的时间,就会报错,如果是之前的时间就不会.(比如2021年的时间) 二.问题解决 1.手动更改系统时间 打开"控制面板 ...

  3. STM32外设:专用定时器 IWDG、WWDG、RTC

    主要外设: IWDG:Independent Watch DoG 独立看门狗 WWDG:Window Watch DoG 窗口看门狗 RTC: Real-Time Clock 实时时钟 IWDG 主要 ...

  4. 8、switch语句

    1.switch语句:"开关" switch是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较,并根据匹配执行代码块.它可以被认为是一种惯用的方式来写多个if else子句 ...

  5. 基于LSTM的股票价格预测模型【附源码】

    导语 本文介绍了LSTM的相关内容和在股票价格预测上的应用. LSTM的股票价格预测 LSTM(Long Short Term Memory)是一种 特殊的RNN类型,同其他的RNNs相比可以更加方便 ...

  6. MinIO客户端之share

    MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc share mc share download mc share upload 生成下载对象的URL,指定对 ...

  7. ElasticSearch之查看集群的参数

    参考Cluster get settings API. 命令样例,不指定参数,如下: curl -X GET "https://localhost:9200/_cluster/setting ...

  8. 安装Zabbix客户端zabbix-agent2

    Ubuntu系统:下载链接:http://mirrors.aliyun.com/zabbix/zabbix/6.0/ubuntu/pool/main/z/zabbix/?spm=a2c6h.25603 ...

  9. C#新鲜面试题出炉(2024)

    总所周知  C#这门语言 没有Java的八股文,所以面试题一般都是问的业务, 那么对于新手来讲,最起码也要会一些基础性问题, 以下就是包含C# 和sqlserver几个常见的面试题   1) Dele ...

  10. shiro基于角色URL进行鉴权

    前言 shiro基于URL进行鉴权,网上有很多,但是多数都是copy不排版,眼睛都看花了,还不如自己看看源码. 2021年1月14日21:23:49最新的shiro是1.7,使用时发现了首次访问的一个 ...