-
------------------------------------
-
前言随着数字化时代的到来,数据的规模和复杂性不断增长,传统存储方式面临着越来越多的挑战。为了满足当今企业对高效、可扩展、可靠的数据管理的需求,对象存储应运而生。本文将介绍对象存储与传统存储的区别,并探讨为什么对象存储成为了数据存储的新宠。传统存储的限制在传统存储中,数据以块(block)或文件(file)的形式存储在物理设备(如硬盘)上。这种存储方式存在一些局限性:复杂性:传统存储需要使用文件系统或逻辑卷管理器来组织和访问数据。这种层级结构使得管理和维护变得复杂,尤其在大规模数据环境下。可扩展性:传统存储对于大规模数据的扩展存在挑战。当数据量增长时,需要不断添加硬件设备或进行容量扩展,这可能导致管理和配置的复杂性。高成本:传统存储往往需要昂贵的硬件和软件许可证来满足数据需求,这对于中小型企业来说可能是个负担。数据冗余:由于文件系统或块存储的复制机制,数据在存储设备之间可能存在重复冗余,浪费了存储资源。对象存储OBS的优势对象存储是一种针对海量数据和云计算环境设计的存储方式。它与传统存储有以下主要区别:数据管理方式:对象存储以对象(object)为基本存储单元,每个对象都有唯一的标识符(ID)和元数据。对象可以是任意类型的数据,例如文件、图像、视频等。这种扁平的命名空间和元数据驱动的方式使得数据管理更加简单和直观。可扩展性:对象存储采用分布式架构,可以无缝地扩展到数百甚至数千台服务器,以满足不断增长的数据需求。添加新的存储节点可以实现水平扩展,无需中断服务或对应用程序进行修改。成本效益:对象存储通常使用廉价的标准硬件,并通过数据冗余和纠删码等技术提供数据的高可靠性。相比传统存储,对象存储的成本更低,并且提供更好的总拥有成本(TCO)。数据可用性和容错性:对象存储具有高度的可用性和容错性。数据分布在多个存储节点上,并使用冗余机制保证数据的安全性和可靠性。即使发生节点故障,数据仍然可用。适应云环境:对象存储是云计算环境中最常用的存储方式之一。它提供了与云计算平台(如Amazon S3和Azure Blob Storage)无缝集成的能力,并支持弹性计算和存储资源的动态调整。结论对象存储作为一种革新性的数据存储方式,克服了传统存储的局限性,成为了满足当今数据管理需求的理想选择。它的简单性、可扩展性、成本效益以及适应云环境的能力,使得对象存储在大规模数据处理、云计算和数据备份等领域得到了广泛应用。随着技术的不断进步和创新,我们可以期待对象存储在未来的发展和应用中发挥更大的作用,为数据管理带来更多的便利和效益。
-
使用demo中的文件下载函数,memcpy_s出现段错误:0x00007ffff7b12ce9 in memcpy_s () from ./lib/libsecurec.so0x00007ffff7f3dd72 in set_use_api_switch () from ./lib/libeSDKOBS.so0x00007ffff7f63cc5 in get_object_metadata () from ./lib/libeSDKOBS.so0x00007ffff7f5f663 in getObjectInfo () from ./lib/libeSDKOBS.so0x00007ffff7f6195b in download_file () from ./lib/libeSDKOBS.so
-
使用代码示例确实能获取到文件上传进度,但是没法直接回传到前端js中进行处理。应该怎么将OBS返回的进度内容回传到页面中?https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0604.html
-
执行到红框就报错了这是为什么
-
有A、B两台服务器,是否支持在A服务器触发下载,将文件下载到远程服务器B上,不走A进行下载流的重定向,不先下载到A再上传到B?不走FTP、HTTP。
-
我在开发测试阶段为啥我上传一个2kb的图片到桶里,put请求计数都是按100次左右计算啊。还有get请求也是一样,我总共就下载了几个图片,每个都是2kb大小,get计数高达4000次左右。我看文档介绍描述,上传一个文件夹,文件夹里有100个对象,计数为100次啊。为啥我的计数这么异常
-
工作需要,将文件上传到桶下的指定文件夹内,官方文档没看到类似的描述,求助!
-
这个问题比较诡异,同一台服务器调用doesObjectExist这个方法有时候报空指针,有时候正常。报错信息如下:[2023-05-11 11:13:45 853] [systemout] [ at com.obs.services.internal.RestStorageService.getIHeaders(RestStorageService.java:1151)] [2023-05-11 11:13:45 853] [systemout] [ at com.obs.services.internal.ObsService.doesObjectExistImpl(ObsService.java:2121)] [2023-05-11 11:13:45 853] [systemout] [ at com.obs.services.ObsClient.doesObjectExist(ObsClient.java:2656)] [2023-05-11 11:13:45 853] [systemout] [ at com.obs.services.ObsClient.doesObjectExist(ObsClient.java:2648)] [2023-05-11 11:13:45 853] [systemout] [ at *.HuaweiyunOBS.excute(HuaweiyunOBS.java:254)] [2023-05-11 11:13:45 853] [systemout] [ at *.HuaweiyunOBS.patchUploadFile(HuaweiyunOBS.java:82)] [2023-05-11 11:13:45 853] [systemout] [ at *.UploadTLCServlet.doPost(UploadTLCServlet.java:132)] [2023-05-11 11:13:45 853] [systemout] [ at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)] [2023-05-11 11:13:45 853] [systemout] [ at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.web.websocket.server.WsFilter.doFilter(WsFilter.java:53)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)] [2023-05-11 11:13:45 853] [systemout] [ at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)] [2023-05-11 11:13:45 853] [systemout] [ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)] [2023-05-11 11:13:45 853] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)] [2023-05-11 11:13:45 853] [systemout] [ at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)] [2023-05-11 11:13:45 853] [systemout] [ at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)] [2023-05-11 11:13:45 853] [systemout] [ at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)] [2023-05-11 11:13:45 853] [systemout] [ at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)] [2023-05-11 11:13:45 853] [systemout] [ at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)] [2023-05-11 11:13:45 854] [systemout] [ at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)] [2023-05-11 11:13:45 854] [systemout] [ at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)] [2023-05-11 11:13:45 854] [systemout] [ at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)] [2023-05-11 11:13:45 854] [systemout] [ at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)] [2023-05-11 11:13:45 854] [systemout] [ at *.ExceptionHanlderFilter.doFilter(ExceptionHanlderFilter.java:33)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)] [2023-05-11 11:13:45 854] [systemout] [ at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)] [2023-05-11 11:13:45 854] [systemout] [ at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.StandardContextValve.invoke0(StandardContextValve.java:123)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ThanosStandardContextValve.invoke0(ThanosStandardContextValve.java:14)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.StandardContextValve.invoke(StandardContextValve.java:114)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ThanosStandardContextValve.invoke(ThanosStandardContextValve.java:103)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:452)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.StandardHostValve.invoke(StandardHostValve.java:346)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.core.ThanosStandardEngineValve.invoke(ThanosStandardEngineValve.java:43)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.realm.RealmValve.invoke(RealmValve.java:21)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.catalina.connector.ThanosCoyoteAdaptor.service(ThanosCoyoteAdaptor.java:469)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.coyote.http11.Http11Processor.service(Http11Processor.java:870)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.coyote.http11.ThanosHttp11Processor.service(ThanosHttp11Processor.java:19)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:921)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1635)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:867)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:634)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:612)] [2023-05-11 11:13:45 854] [systemout] [ at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)] [2023-05-11 11:13:45 854] [systemout] [ at sun.nio.ch.Invoker$2.run(Invoker.java:218)] [2023-05-11 11:13:45 854] [systemout] [ at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.threads.TWThreadPoolExecutor.runWorker(TWThreadPoolExecutor.java:1172)] [2023-05-11 11:13:45 854] [systemout] [ at com.tongweb.web.util.threads.TWThreadPoolExecutor$Worker.run(TWThreadPoolExecutor.java:628)] [2023-05-11 11:13:45 855] [systemout] [ at com.tongweb.web.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)] [2023-05-11 11:13:45 855] [systemout] [ at java.lang.Thread.run(Thread.java:750)]
-
目前上传的是只能在桶的根目录下,使用的uploadPartRequest.setObjectKey("文件夹/文件名");报错。详情如下:ResponseStatus: Bad Request, XML Error Message: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Error><Code>MalformedXML</Code><Message>The XML you provided was not well-formed or did not validate against our published schema</Message><RequestId>XXXX</RequestId><HostId>XXXX</HostId></Error> 请问在使用分段上传的时候是在哪个地方设置路径呢?
-
上传大文件,采用断点续传的api,需要在开启上传前获得uploadId,可以像分段上传的api那样,初始化时可以获得UploadId吗,
-
UploadFileRequest request = new UploadFileRequest("bucketname", "objectKey"); // 设置待上传的本地文件,localfile为待上传的本地文件路径,需要指定到具体的文件名 request.setUploadFile("localfile"); // 设置分段上传时的最大并发数 request.setTaskNum(5); // 设置分段大小为10MB request.setPartSize(10 * 1024 * 1024); // 开启断点续传模式 request.setEnableCheckpoint(true);request.setUploadFile("localfile"); 只有上传的本地文件路径 ,如果上传不是本地文件路径的文件,想以文件流方式上传怎么上传,
-
Web端通过PostObject接口直传OBS,文件上传完毕后obs怎么通知服务端文件已经上传完毕
-
Android流式下载,文件大小有限制吗?
-
[互动交流] com.obs.services.exception.ObsException: Error message:Request Error.OBS servcie Error Message. -- ResponseCode: 404,Android代码从obs下载文件,运行后出现如下界面提示:什么原因?
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签