三、swift大对象--动态大对象
系列导航
六、java操作swift对象存储(resultful方式实现)
一、什么是swift的大对象
简单的说就是单个文件大于5G,就属于大对象,单个文件大于5G按照普通方式上传swift就会报错(Your request is too large)。
注:除了报错以外单独上传一个比如4G的文件需要的时间比较长,那么怎么让上传的速度增加呢?这就需要用到swift的大对象功能。
例子:
--造一个不到4.9G的文件 /opt/4G.txt
dd if=/dev/zero of=/opt/4G.txt bs=1M count=5000
--上传一个4.9G的文件耗时95秒
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin upload bigContainer /opt/4G.txt --object-name 4G.txt
--查看物理位置
swift-get-nodes -a /etc/swift/object.ring.gz AUTH_admin bigContainer 4G.txt
-----------------------------------
--造一个5.1G的文件 /opt/5G.txt
dd if=/dev/zero of=/opt/5G.txt bs=1M count=5130
--上传一个5G的文件
swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin upload bigContainer /opt/5G.txt --object-name 5G.txt
报错: Your request is too large.
注:上面的例子可以看出文件小于5G可以正常上传,但是大于5G就会报错。
二、如何向swift上传大于5G的文件?
使用swift的大对象功能,大对象功能又分为动态大对象和静态大对象两种,可以根据需求选择使用。
三、动态大对象
(1) 动态大对象 swift CLI 分段上传下载
--使用段的概念上传大文件
--官网说明:
swift upload test_container -S 1073741824 large_file
--例子:
swift -A http://127.0.0.1:8080/auth/v1.0 -U yc:mao -K yang upload -S 1073741824 ycContainer /opt/5G.txt --object-name 5G.txt
注:-S的意思是把文件切割成1073741824(1G)大小的分片上传文件。
--查看容器列表
swift -A http://127.0.0.1:8080/auth/v1.0 -U yc:mao -K yang list
ycContainer
ycContainer_segments
--查看ycContainer容器
swift -A http://127.0.0.1:8080/auth/v1.0 -U yc:mao -K yang list ycContainer
5G.txt
--查看ycContainer_segments容器
[root@node02 1]# swift -A http://127.0.0.1:8080/auth/v1.0 -U yc:mao -K yang list ycContainer_segments
5G.txt/1591261394.734867/5379194880/1073741824/00000000
5G.txt/1591261394.734867/5379194880/1073741824/00000001
5G.txt/1591261394.734867/5379194880/1073741824/00000002
5G.txt/1591261394.734867/5379194880/1073741824/00000003
5G.txt/1591261394.734867/5379194880/1073741824/00000004
5G.txt/1591261394.734867/5379194880/1073741824/00000005
--下载对象5G.txt到/opt/1路径下
swift -A http://127.0.0.1:8080/auth/v1.0 -U yc:mao -K yang download ycContainer 5G.txt --output /opt/1/5G.txt
(2)动态大对象 curl 进行分段上传、合并下载
所有对象段都必须位于同一容器中,并具有通用的对象名称前缀,并按应将其连接的顺序排序。对象名称按UTF-8字节字符串的字典顺序排序。它们不必与清单文件位于相同的容器中
curl http://127.0.0.1:8080/auth/v1.0 -v -H 'X-Storage-User: admin:admin' -H 'X-Storage-Pass: admin'
curl -X PUT -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67" -T /opt/1.txt http://127.0.0.1:8080/v1/AUTH_admin/containerCURL/myobject/c.txt --data-binary '1'
curl -X PUT -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67" -T /opt/2.txt http://127.0.0.1:8080/v1/AUTH_admin/containerCURL/myobject/a.txt --data-binary '1'
curl -X PUT -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67" -T /opt/3.txt http://127.0.0.1:8080/v1/AUTH_admin/containerCURL/myobject/b.txt --data-binary '1'
curl -X PUT -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67" -H 'X-Object-Manifest: containerCURL/myobject/' http://127.0.0.1:8080/v1/AUTH_admin/containerManifest/myobject --data-binary ''
curl -D- -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67" http://127.0.0.1:8080/v1/AUTH_admin/containerManifest/myobject
查看
curl http://127.0.0.1:8080/v1/AUTH_admin/containerCURL -X GET -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67"
curl http://127.0.0.1:8080/v1/AUTH_admin/containerManifest -X GET -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67"
删除
curl http://127.0.0.1:8080/v1/AUTH_admin/containerManifest/myobject -X DELETE -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67"
curl http://127.0.0.1:8080/v1/AUTH_admin/containerCURL/myobject/a.txt -X DELETE -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67"
curl http://127.0.0.1:8080/v1/AUTH_admin/containerCURL/myobject/b.txt -X DELETE -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67"
curl http://127.0.0.1:8080/v1/AUTH_admin/containerCURL/myobject/c.txt -X DELETE -H "X-Auth_Token: AUTH_tk2cf9efe9efe64881ad058d047d907b67"

三、swift大对象--动态大对象的更多相关文章
- JSP的学习(6)——九大隐式对象及其out对象
本篇将介绍JSP中的九大隐式对象,并重点介绍其中的out对象. 我们在之前的博客<JSP的学习(1)——基础知识与底层原理>一文中已经知道,JSP最终要被翻译和转换成Servlet,在转换 ...
- 一次对象过大引起的gc性能问题的分析与定位
现象:一个接口在4C的机器上跑最大只有7TPS,CPU使用率就已经90%多. 定位: 1. 使用top命令查看CPU使用情况,找到进程号 2. 使用top -H -pid命令,查看进程信息,看到有 ...
- Java 5大内存区域和对象的创建过程
1.Java运行时数据区 方法区,堆线程共享.虚拟机栈,本地方法栈和程序计数器线程私有. 2.程序计数器(PC计数器) 占用较小的一块内存空间,当执行Java方法时记录正在执行的虚拟机字节码指令地址, ...
- BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等
将一张图片存储在mysql中,并读取出来(BLOB数据:插入BLOB类型的数据必须使用PreparedStatement,因为插入BLOB类型的数据无法使用字符串拼写): -------------- ...
- [翻译] 编写高性能 .NET 代码--第二章 GC -- 将长生命周期对象和大对象池化
将长生命周期对象和大对象池化 请记住最开始说的原则:对象要么立即回收要么一直存在.它们要么在0代被回收,要么在2代里一直存在.有些对象本质是静态的,生命周期从它们被创建开始,到程序停止才会结束.其它对 ...
- Java的三种代理模式(Spring动态代理对象)
Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...
- Qt 编程指南 8 显示静态小图片和动态大图片
显示控件概览 图片浏览示例 第一行是一个标签控件,objectName 为 labelShow,文本内容清空,因为是用来显示图片用的. 主界面第二行的控件是四个普通按钮 第一个按钮文本是 " ...
- python动态获取对象的属性和方法 (转载)
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...
- [C] 在 C 语言编程中实现动态数组对象
对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态 ...
- Mybatis 系列9-强大的动态sql 语句
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
随机推荐
- mysql的用户管理和权限控制
1.创建用户用 create user '用户名' @ 'localhost' identified by '密码'; 这串代码是创建当地用,是这台电脑的用户,因为有个localhost: creat ...
- [AGC024F] Simple Subsequence Problem
Problem Statement You are given a set $S$ of strings consisting of 0 and 1, and an integer $K$. Find ...
- v-for和指令
. v-for 起遍历作用. 注意点: 1.遍历的里面第一个值是定义的元素的值,第二个值是值的名称,第三个值为下标 2.:key是v-blind:key的简写,是代码中的唯一标识,一般用id来定义 v ...
- MongoDB中的分布式集群架构
MongoDB 中的分布式集群架构 前言 Replica Set 副本集模式 副本集写和读的特性 Sharding 分片模式 分片的优势 MongoDB 分片的组件 分片键 chunk 是什么 分片的 ...
- vivo 容器平台资源运营实践
作者:vivo 互联网服务器团队 - Chen Han 容器平台针对业务资源申请值偏大的运营问题,通过静态超卖和动态超卖两种技术方案,使业务资源申请值趋于合理化,提高平台资源装箱率和资源利用率. 一. ...
- 被面试官PUA了:创建索引时一定会锁表?
索引主要是用于提高数据检索速度的一种机制,通过索引数据库可以快速定位到目标数据的位置,而不需要遍历整个数据集,它就像书籍的目录部分,有它的存在,可以大大加速查询的效率. 那么问题来了:在创建索引时一定 ...
- 【大语言模型基础】60行Numpy教你实现GPT-原理与代码详解
写在前面 本文主要是对博客 https://jaykmody.com/blog/gpt-from-scratch/ 的精简整理,并加入了自己的理解. 中文翻译:https://jiqihumanr.g ...
- 当数字孪生系统接入CesiumJS,将为智慧城市项目带来怎样的改变?
数字孪生系统接入CesiumJS的契机,正是智慧城市项目的需要.因为许多智慧城市项目中包含了大量地形.倾斜摄影.DOM.DEM等GIS数据,那么为了能够在数字孪生系统中导入这些GIS数据,同时让这些数 ...
- HTB - CozyHosting - WriteUp
CozyHosting 前言:抓紧赛季末上一波分,错过开vip才能练了 信息收集 扫描看看端口的开放情况,开了22,80,5555.这里fscan显示会跳转到cozyhosting.htb. 那就需要 ...
- 聊聊ChatGLM6B的微调脚本及与Huggingface的关联
本文首先分析微调脚本trainer.sh的内容,再剖析ChatGLM是如何与Huggingface平台对接,实现transformers库的API直接调用ChatGLM模型,最后定位到了ChatGLM ...