• 华为云Flexus OBS 介绍
    华为云Flexus OBS:数字化转型的理想数据底座华为云Flexus OBS是华为云推出的分布式海量对象存储服务,专为中小企业量身打造,旨在为用户提供高效、安全、经济的云端存储解决方案。 作为华为云对象存储服务(OBS)产品线的重要组成部分,Flexus OBS面向数据归档、网站建设、内容分发等场景,为中小企业提供最佳数据底座,具备资源包灵活组合、极致安全可靠、管理简单等特点。产品定位与核心价值Flexus OBS是华为云针对中小企业数字化转型需求而设计的存储服务,它继承了华为云OBS的核心优势,同时在定价模式和服务体验上进行了优化。该服务特别适合电商直播、企业建站、开发测试环境等场景,能够满足中小企业在不同业务阶段的存储需求。 作为数字化转型的基础设施,Flexus OBS让存储能力真正成为企业数字化的坚实底座,助力企业专注于核心业务创新而非基础设施管理。核心技术特点1. 高可靠性与数据安全Flexus OBS采用多副本和纠删码等机制保障数据持久性,确保用户数据的高可靠性。 服务通过可信云认证,支持服务端加密、防盗链、VPC网络隔离、日志审计以及细粒度权限控制,全方位保障数据安全可信。 这些安全特性使企业能够放心地将关键业务数据存储在云端,无需担心数据泄露或丢失风险。2. 高性能与扩展性Flexus OBS通过智能调度和响应优化数据访问路径,结合传输加速和大数据垂直优化技术,为用户提供超高带宽和高效的数据访问体验。 该服务支持千亿级对象存储和千万级并发访问,能够轻松应对业务高峰期的流量冲击,确保业务连续性和用户体验。 作为基于对象的存储服务,Flexus OBS让用户无需考虑容量限制,可随时根据业务需求弹性扩展存储空间。3. 灵活的资源管理Flexus OBS提供资源包灵活组合的特性,使中小企业能够根据实际业务需求选择最适合的存储方案,避免资源浪费。 服务管理界面简洁直观,操作简单,大幅降低了中小企业使用云存储的技术门槛,让非专业IT人员也能轻松管理企业数据。适用场景Flexus OBS适用于多种业务场景,主要包括:数据归档:为企业提供长期、低成本的数据归档解决方案,满足合规性要求的同时降低存储成本。网站建设:作为网站静态资源(如图片、视频、CSS、JavaScript文件)的存储平台,提供高可用性和快速访问能力。内容分发:与CDN服务结合,加速内容分发,提升全球用户访问体验。备份与容灾:作为企业数据备份和灾难恢复的可靠存储后端,保障业务连续性。大数据分析:为大数据分析平台提供海量数据存储支持,满足数据分析和处理需求。与标准OBS的关系Flexus OBS是华为云对象存储服务(OBS)产品体系中的重要一员。标准OBS作为华为云的基础存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。 Flexus OBS则在此基础上,针对中小企业特点进行了优化,提供了更加灵活的资源组合方式和更适合中小企业预算的定价模式。产品优势总结华为云Flexus OBS的核心优势可概括为"三高一低":高可靠、高性能、高扩展性、低成本。 它不仅继承了华为云OBS的技术优势,还针对中小企业需求进行了优化,使中小企业能够以更低的成本获得企业级的存储服务。通过Flexus OBS,中小企业可以将精力集中在核心业务上,无需担忧底层存储基础设施的建设和维护,从而加速数字化转型进程。 该服务简单易用的管理界面和灵活的资源组合方式,大大降低了企业使用云存储的门槛,让数字化转型变得更加平滑和高效。作为华为云智能世界云底座的重要组成部分,Flexus OBS与其他华为云服务(如云硬盘EVS、弹性文件服务SFS等)协同工作,为企业提供全面的云存储解决方案。 无论是初创企业还是成长中的中小企业,Flexus OBS都能为其提供可靠的数据存储保障,助力企业在数字化时代稳健发展。
  • [技术干货] 【FAQ】OBS2025年7月问题及解决方案汇总
    问题1问题:Obs的桶策略怎么按照文件后缀进行访问控制链接:https://bbs.huaweicloud.com/forum/thread-0255188538326987021-1-1.html回答:在华为云OBS(对象存储服务)中,可以通过**桶策略(Bucket Policy)结合条件键(Condition Keys)**实现基于文件后缀的访问控制。以下是具体配置步骤和示例:1. 核心原理OBS桶策略支持使用条件键(如obs:Prefix、obs:Suffix)对请求进行细粒度过滤。通过定义条件,可以限制用户仅能对特定后缀的文件执行指定操作(如读取、写入、删除等)。2. 配置步骤步骤1:登录华为云控制台进入OBS服务,选择目标桶,点击 “权限管理” → “桶策略”。步骤2:编写策略语句在桶策略编辑器中,使用JSON格式定义策略。以下是一个允许用户仅读取.jpg和.png文件的示例:{ "Version": "2018-10-17", "Statement": [ { "Effect": "Allow", // 允许或拒绝(Deny) "Action": ["obs:GetObject"], // 允许的操作(如读取对象) "Resource": ["acs:obs:*:*:your-bucket-name/*"], // 资源范围(桶内所有对象) "Condition": { "StringLike": { "obs:Suffix": [".jpg", ".png"] // 匹配文件后缀 // 或使用 "obs:Prefix": "images/" 限制前缀 } } } ] } 步骤3:限制其他操作(可选)若需禁止用户访问其他后缀文件,可添加Deny策略:{ "Effect": "Deny", "Action": ["obs:GetObject"], "Resource": ["acs:obs:*:*:your-bucket-name/*"], "Condition": { "StringNotLike": { "obs:Suffix": [".jpg", ".png"] // 拒绝非指定后缀的访问 } } } 步骤4:保存策略检查语法无误后,点击 “保存” 生效。3. 关键条件键说明条件键作用示例值obs:Suffix匹配对象键的后缀(文件扩展名).jpg, .pngobs:Prefix匹配对象键的前缀(目录路径)images/, docs/obs:Key精确匹配对象键(完整文件名)path/to/file.jpg4. 测试验证使用OBS Browser+或SDK上传测试文件(如test.jpg和test.txt)。通过IAM用户或临时密钥尝试访问不同后缀文件,验证策略是否生效。5. 注意事项策略优先级:若存在冲突策略,Deny优先级高于Allow。通配符支持:可使用*匹配任意字符(如*.jpg)。大小写敏感:后缀匹配默认区分大小写(如.JPG和.jpg不同)。资源范围:确保Resource字段正确指定桶和对象路径(如your-bucket-name/*)。6. 替代方案若桶策略无法满足复杂需求,可结合以下方式:IAM策略:在用户或角色级别限制访问权限。生命周期规则:自动管理特定后缀文件的存储类型或过期时间。防盗链:通过Referer限制文件访问来源。通过合理配置OBS桶策略,可以高效实现基于文件后缀的精细化访问控制,保障数据安全。问题2问题:OBS新增资源报错详细描述:批量初始化公司目录结构时,大多数公司可以正常初始化,但是每次都有一些会抛出下面的异常。com.obs.services.exception.ObsException: Error message:Request Error.OBS servcie Error Message. – ResponseCode: 404, ResponseStatus: Not Found, RequestId: 00000197CDD9A6A0EB6415B340FF429A, HostId: 36AAAQAAEAABAAAQAAEAABAAAQAAEAABAAAaE=AAAAAAAAAAAAAAAAAAAAAAAAAA at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:533) at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:402) at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:277) at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:251) at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:262) at com.zhubajie.xxh.biz.obs.ObsClientUtil.putObject(ObsClientUtil.java:113) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz.initEmptyFile(ECertResourceBiz.java:1489) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz.initDirAndFile(ECertResourceBiz.java:1530) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz.initCompanyFile(ECertResourceBiz.java:1725) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz$$FastClassBySpringCGLIB$$931b1a3.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxyDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669)atcom.zhubajie.xxh.biz.ecert.ECertResourceBizDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669) at com.zhubajie.xxh.biz.ecert.ECertResourceBizDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669)atcom.zhubajie.xxh.biz.ecert.ECertResourceBizEnhancerBySpringCGLIBEnhancerBySpringCGLIBEnhancerBySpringCGLIB6ac084f7.initCompanyFile(<generated>)atcom.zhubajie.xxh.service.impl.ecert.ECertStorageApiServiceImpl.initDir(ECertStorageApiServiceImpl.java:169)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)atorg.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)atorg.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)atcom.zbj.commons.util.LogExcetionLockerAspect.around(LogExcetionLockerAspect.java:154)atsun.reflect.GeneratedMethodAccessor400.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)atorg.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)atorg.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)atorg.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)atorg.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)atcom.sun.proxy.6ac084f7.initCompanyFile(<generated>) at com.zhubajie.xxh.service.impl.ecert.ECertStorageApiServiceImpl.initDir(ECertStorageApiServiceImpl.java:169) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85) at com.zbj.commons.util.LogExcetionLockerAspect.around(LogExcetionLockerAspect.java:154) at sun.reflect.GeneratedMethodAccessor400.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.6ac084f7.initCompanyFile(<generated>)atcom.zhubajie.xxh.service.impl.ecert.ECertStorageApiServiceImpl.initDir(ECertStorageApiServiceImpl.java:169)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)atorg.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)atorg.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)atcom.zbj.commons.util.LogExcetionLockerAspect.around(LogExcetionLockerAspect.java:154)atsun.reflect.GeneratedMethodAccessor400.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)atorg.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)atorg.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)atorg.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)atorg.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)atcom.sun.proxy.Proxy310.initDir(Unknown Source) at com.alibaba.dubbo.common.bytecode.Wrapper133.invokeMethod(Wrapper133.java) at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46) at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72) at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53) at com.zhubajie.xxh.biz.executor.ContextFilter.invoke(ContextFilter.java:37) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.zhubajie.dubbo.filter.ZTraceFilter.invoke(ZTraceFilter.java) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:70) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:132) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper1.invoke(ProtocolFilterWrapper.java:91)atcom.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke1.invoke(ProtocolFilterWrapper.java:91)atcom.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invokeoriginal57Iq4cCB(ClassLoaderFilter.java:38)atcom.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke57Iq4cCB(ClassLoaderFilter.java:38) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke57Iq4cCB(ClassLoaderFilter.java:38)atcom.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invokeoriginal57Iq4cCB57Iq4cCB57Iq4cCBaccessor7mR2CjcY(ClassLoaderFilter.java)atcom.alibaba.dubbo.rpc.filter.ClassLoaderFilter7mR2CjcY(ClassLoaderFilter.java) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter7mR2CjcY(ClassLoaderFilter.java)atcom.alibaba.dubbo.rpc.filter.ClassLoaderFilterauxiliary$KPZyuq1u.call(Unknown Source) at com.zbj.middleware.trace.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:69) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.zhubajie.dubbo.filter.GenericEchoFilter.invoke(GenericEchoFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol1.reply(DubboProtocol.java:113)atcom.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)atcom.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)atcom.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)atcom.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)atcom.zbj.middleware.trace.dependencies.com.zbj.ttl.TtlRunnable.run(TtlRunnable.java:64)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)atjava.util.concurrent.ThreadPoolExecutor1.reply(DubboProtocol.java:113) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170) at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52) at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82) at com.zbj.middleware.trace.dependencies.com.zbj.ttl.TtlRunnable.run(TtlRunnable.java:64) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor1.reply(DubboProtocol.java:113)atcom.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)atcom.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)atcom.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)atcom.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)atcom.zbj.middleware.trace.dependencies.com.zbj.ttl.TtlRunnable.run(TtlRunnable.java:64)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)链接:https://bbs.huaweicloud.com/forum/thread-0270186890277993053-1-1.html回答:问题分析从异常日志来看,华为云OBS在批量初始化公司目录结构时,部分请求抛出 404 Not Found 错误。结合堆栈信息,问题可能出现在以下环节:关键错误点:ObsException: ResponseCode: 404 表示客户端尝试访问的OBS资源(桶或对象)不存在。调用链显示问题发生在 putObject 操作(上传文件或创建空文件时)。可能原因:桶不存在:目标桶名称拼写错误,或桶未提前创建。目录未创建:OBS是对象存储,无原生“目录”概念。若代码尝试上传文件到“路径”(如 company1/docs/),但未先上传占位文件(如 company1/docs/.keep),可能导致路径不存在。权限问题:IAM用户/角色缺少对桶的 PutObject 权限。并发冲突:批量初始化时,多线程/进程竞争创建同一目录,导致部分请求失败。解决方案1. 检查桶是否存在确认代码中指定的桶名称(your-bucket-name)是否与OBS控制台一致。若桶不存在,需先通过API或控制台创建桶。2. 确保目录路径存在OBS的“目录”是通过对象键(Key)中的 / 模拟的。必须先上传一个占位文件才能让路径“存在”:// 示例:创建空目录(上传一个0字节的占位文件) obsClient.putObject("bucket-name", "company1/docs/.keep", new ByteArrayInputStream(new byte[0])); 优化建议:在初始化目录结构前,先遍历所有路径并创建占位文件。使用递归方法确保父目录存在(类似Linux的 mkdir -p)。3. 检查权限策略确保使用的AK/SK或IAM角色具有以下权限:{ "Version": "2018-10-17", "Statement": [ { "Effect": "Allow", "Action": ["obs:PutObject", "obs:PutObject*"], "Resource": ["acs:obs:*:*:your-bucket-name/*"] } ] } 4. 处理并发冲突若使用多线程初始化,需对目录创建操作加锁或使用单线程预处理。捕获 404 异常并重试(可能因其他线程未完成目录创建):try { obsClient.putObject(bucketName, objectKey, file); } catch (ObsException e) { if (e.getResponseCode() == 404) { // 自动创建目录或重试 createParentDirectories(obsClient, bucketName, objectKey); obsClient.putObject(bucketName, objectKey, file); } } 5. 日志与调试在异常时打印完整的请求参数(桶名、对象键、请求ID)。通过华为云OBS控制台的 “请求ID”(如 RequestId: 00000197CDD9A6A0EB6415B340FF429A)在日志中定位具体失败请求。代码示例(完整初始化逻辑)public void initDirectoryStructure(ObsClient obsClient, String bucketName, List<String> directories) { for (String dir : directories) { try { // 确保目录存在(上传占位文件) String placeholderKey = dir + "/.keep"; if (!obsClient.doesObjectExist(bucketName, placeholderKey)) { obsClient.putObject(bucketName, placeholderKey, new ByteArrayInputStream(new byte[0])); } } catch (ObsException e) { log.error("Failed to init directory: {}, Error: {}", dir, e.getErrorMessage()); if (e.getResponseCode() == 404) { // 处理桶不存在的情况 throw new RuntimeException("Bucket " + bucketName + " may not exist."); } } } } 总结404错误的核心:OBS中目录需通过占位文件模拟,直接操作路径会导致404。关键动作:预创建所有路径的占位文件,检查桶和权限,处理并发。扩展建议:使用华为云OBS的 批量上传工具 或 SDK的并发控制功能 减少手动错误。通过以上步骤,可解决批量初始化时的404问题。如果仍有异常,建议联系华为云技术支持并提供具体的 RequestId 和 HostId 进一步排查。
  • [大赛资讯] 初赛A榜格式分统计(截止7月20日23:59)
    团队名称格式得分精度得分西北智联161153CEATRG0149.5hid_t7v_sdh548dhkkz0148.5hid_cwfo0xxj8regp6r0146鸿蒙极客队162143.48BUPT-ParCIS160136.34notrickno154136.08武汉船院计算机2307#2153133.49ECNU_ELRM139132.15全都对队162131.56judgeyang98131myf gogogo98129.11二进制萝卜培育中心98127擎狮0126纳算力克大工坊105125.45不玊之客劣等兵朴昌罗桂夏0123奇点0122.73点子王0122.45破晓者155120.4想去研究大模型108119.9bupt735162117.47Decoder-Only161116123462115[object Object]0114.88浙安院云计算63112.54挑战杯揭榜挂帅华为0111.75说人话0111.11昇腾推理智速引擎0109.08试试0107.1蒜鸟你搞不赢队0106.55ken0102.35hid_b2ydyl88e3z7tqc160102.02智在必得098.79yangs_wdxw12096.88TEMP12096.88这对吗096.03拳头花可火091.64西北文科大学队13891武汉船院计算机2307090.71昇腾芯链088.33hid_77fv2kg9-fgvjfg087.81三角矩阵085.99随便起一个13585.08永宁永胜9883.93123--083.79PACKPACK11378.32华东理工大学AIMC实验室074.49昇腾智推大模型072.53CodeWisdom070.54GT-ejdkd068.7Create3267扬花落满肩064.14马桶蹲累了160.97急急急060.11AAA建材王哥058璃月医科大学孤云阁校区16257.22lab3083851.42fengerhu14946被资本做局041.24智枢拓界025.66hid_x7qejp3bft91lsd16012.02hid_hyh--co6xfj6nhk010challenger X07A-team02hw035532519500.4CCD队00.4没机基队00
  • [互动交流] Obs的桶策略怎么按照文件后缀进行访问控制
    Obs桶策略怎么配置按照文件后缀进行访问控制呢
  • [大赛资讯] 初赛A榜格式分统计(截止7月16日14:30)
    截止7月16日14:30前,各团队初赛A榜注:仅最高精度分对应的格式得分,如最高精度得分相同,以最早提交的最高精度得分为准。团队名称格式得分精度得分西北智联161153hid_t7v_sdh548dhkkz0148.5hid_cwfo0xxj8regp6r0146鸿蒙极客队162143.48BUPT-ParCIS160136.34CEATRG0135.5武汉船院计算机2307#2153133.49ECNU_ELRM139132.15全都对队162131.56judgeyang98131myf gogogo98129.11二进制萝卜培育中心98127擎狮0126纳算力克大工坊105125.45不玊之客劣等兵朴昌罗桂夏0123奇点0122.73点子王0122.45破晓者155120.4bupt735162117.47Decoder-Only161116123462115浙安院云计算63112.54试试0107.1ken0102.35hid_b2ydyl88e3z7tqc160102.02蒜鸟你搞不赢队0101.19智在必得098.79说人话098.77这对吗096.03TEMP095.17拳头花可火091.64武汉船院计算机2307090.71挑战杯揭榜挂帅华为088.8hid_77fv2kg9-fgvjfg087.81随便起一个13585.08昇腾芯链084.74yangs_wdxw082.65三角矩阵081.22PACKPACK11378.32永宁永胜075.39华东理工大学AIMC实验室074.49昇腾智推大模型072.53CodeWisdom070.54GT-ejdkd068.7急急急060.11璃月医科大学孤云阁校区16257.22想去研究大模型056.65马桶蹲累了056.05fengerhu14946扬花落满肩118.43Create017.11hid_x7qejp3bft91lsd16012.02智枢拓界011.59hid_hyh--co6xfj6nhk010challenger X07A-team02hw035532519500.4CCD队00.4没机基队00
  • [大赛资讯] 初赛A榜格式分统计(截止7月9日14点00分)
    截止7月9日14点00分前,各团队初赛A榜注:仅最高精度分对应的格式得分,如最高精度得分相同,以最早提交的最高精度得分为准。团队名称格式得分精度得分hid_t7v_sdh548dhkkz0148.5hid_cwfo0xxj8regp6r0146鸿蒙极客队162143.48CEATRG0135.5武汉船院计算机2307#2153133.49ECNU_ELRM144131.34擎狮0126纳算力克大工坊105125.45奇点0122.73点子王0122.45破晓者155120.4bupt735162117.47西北智联133117Decoder-Only161116123462115judgeyang0114.07浙安院云计算63112.54二进制萝卜培育中心0112.06BUPT-ParCIS76108.52myf gogogo0107.23试试0107.1不玊之客劣等兵朴昌罗桂夏0106.4ken0102.35hid_b2ydyl88e3z7tqc160102.02智在必得098.79这对吗096.03蒜鸟你搞不赢队092.13拳头花可火091.64武汉船院计算机2307090.71说人话089.05hid_77fv2kg9-fgvjfg087.81TEMP085.96yangs_wdxw082.65昇腾芯链082.39永宁永胜075.39华东理工大学AIMC实验室074.49挑战杯揭榜挂帅华为073.73CodeWisdom070.54GT-ejdkd068.7急急急060.11璃月医科大学孤云阁校区16257.22想去研究大模型056.65全都对队4846fengerhu14946扬花落满肩118.43Create017.11hid_x7qejp3bft91lsd16012.02hid_hyh--co6xfj6nhk010智枢拓界09.56challenger X07A-team02hw035532519500.4没机基队00
  • [互动交流] OBS新增资源报错
    批量初始化公司目录结构时,大多数公司可以正常初始化,但是每次都有一些会抛出下面的异常。com.obs.services.exception.ObsException: Error message:Request Error.OBS servcie Error Message. -- ResponseCode: 404, ResponseStatus: Not Found, RequestId: 00000197CDD9A6A0EB6415B340FF429A, HostId: 36AAAQAAEAABAAAQAAEAABAAAQAAEAABAAAaE=AAAAAAAAAAAAAAAAAAAAAAAAAA at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:533) at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:402) at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:277) at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:251) at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:262) at com.zhubajie.xxh.biz.obs.ObsClientUtil.putObject(ObsClientUtil.java:113) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz.initEmptyFile(ECertResourceBiz.java:1489) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz.initDirAndFile(ECertResourceBiz.java:1530) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz.initCompanyFile(ECertResourceBiz.java:1725) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz$$FastClassBySpringCGLIB$$931b1a3.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669) at com.zhubajie.xxh.biz.ecert.ECertResourceBiz$$EnhancerBySpringCGLIB$$6ac084f7.initCompanyFile(<generated>) at com.zhubajie.xxh.service.impl.ecert.ECertStorageApiServiceImpl.initDir(ECertStorageApiServiceImpl.java:169) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85) at com.zbj.commons.util.LogExcetionLockerAspect.around(LogExcetionLockerAspect.java:154) at sun.reflect.GeneratedMethodAccessor400.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy310.initDir(Unknown Source) at com.alibaba.dubbo.common.bytecode.Wrapper133.invokeMethod(Wrapper133.java) at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46) at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72) at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53) at com.zhubajie.xxh.biz.executor.ContextFilter.invoke(ContextFilter.java:37) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.zhubajie.dubbo.filter.ZTraceFilter.invoke(ZTraceFilter.java) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:70) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:132) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke$original$57Iq4cCB(ClassLoaderFilter.java:38) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke$original$57Iq4cCB$accessor$7mR2CjcY(ClassLoaderFilter.java) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter$auxiliary$KPZyuq1u.call(Unknown Source) at com.zbj.middleware.trace.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:69) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.zhubajie.dubbo.filter.GenericEchoFilter.invoke(GenericEchoFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:113) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170) at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52) at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82) at com.zbj.middleware.trace.dependencies.com.zbj.ttl.TtlRunnable.run(TtlRunnable.java:64) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
  • [大赛资讯] 初赛A榜格式分统计(截止7月2日12点30分)
    截止7月2日12点30分前,各团队初赛A榜注:仅最高精度分对应的格式得分,如最高精度得分相同,以最早提交的最高精度得分为准团队名称格式得分精度得分CEATRG0135.5ECNU_ELRM144131.34擎狮0126纳算力克大工坊112122.87点子王0118bupt735162117.47Decoder-Only16111612340113.18hid_t7v_sdh548dhkkz127112.62myf gogogo0107.23不玊之客劣等兵朴昌罗桂夏0106.4二进制萝卜培育中心0104.09ken0102.35智在必得098.79试试097.99这对吗096.03judgeyang095.29BUPT-ParCIS094.68蒜鸟你搞不赢队092.13拳头花可火091.64浙安院云计算5091说人话089.05昇腾芯链082.39破晓者074.35CodeWisdom070.54TEMP069.66永宁永胜7669.45GT-ejdkd068.7AIMC061.01急急急060.11璃月医科大学孤云阁校区16257.22想去研究大模型056.65hid_hyh--co6xfj6nhk010A-team02没机基队00
  • [技术干货] 【FAQ】2025年6月存储服务问答集合
    论坛干货华为云OBS中obsutil上传文件优化实践https://bbs.huaweicloud.com/forum/thread-0241186379703623008-1-1.html问题求助单独使用main方法,文件可以正常上传,但在服务器跑程序时,报错https://bbs.huaweicloud.com/forum/thread-0254186043859171039-1-1.html答:本地使用相对路径(如./upload),但服务器环境中该路径不存在或权限不足。OBS某一个桶的域名对应的IP和OBS集群的IP是一个吗?我在电脑上ping 桶的域名 不通,提示Name or service not known。因该是域名解析的问题,我如果在自己电脑的host文件中增加这条域名解析规则,该怎么添加呢?我现在只知道OBS存储集群的IP,但是这个集群下有很多桶,那么其中某一个桶的域名对应的IP和OBS存储集群的IP是一个吗?如果不是,我该怎么知道我这个特定的桶对应的IP呢?https://bbs.huaweicloud.com/forum/thread-02101185877382103030-1-1.html答:你遇到的 Name or service not known 错误通常是由于域名解析失败引起的,可能是因为该域名没有被正确解析为 IP 地址,或者网络中存在 DNS 配置问题。你可以通过修改本地的 hosts 文件来强制解析该域名。如果桶的域名无法解析,可以通过修改本地 hosts 文件来强制解析,提供集群的 IP 地址。OBS 存储集群的多个桶通常会共享同一个 IP 地址(入口节点或负载均衡器的 IP)。使用 nslookup 或 dig 来查询桶域名的实际 IP 地址。对象存储进行多版本控制后,删除对象后未出现“已删除对象”一栏https://bbs.huaweicloud.com/forum/thread-0255185855746184026-1-1.html答:“已删除对象”之后将在“对象列表”中的历史版本里呈现华为OBS有分享对象的接口吗我在OBS管理页面可以点击分享某个文件,然后会有有效期以及链接,但是在API包括SDK中没有看到关于分享对象的信息,后面找到了一个【生成带授权信息的URL】接口,后面我试了一下功能是和在页面点击分享文件的功能差不多,但是不知道为什么,两者的URL地址是完全不一样的,一个是签名一个是token,有没有大佬知道的可以帮忙解答一下勒https://bbs.huaweicloud.com/forum/thread-0259183901158078016-1-1.html答:有分享接口,并且分享可以设置时间限制,超过时间就失效了,就是URL太长
  • 华为云OBS中obsutil上传文件优化实践
    在华为云OBS中,通过obsutil上传文件时​​无法直接通过命令行参数设置对象的过期时间(如7天后自动删除)​​,但可以通过​​对象元数据Expires字段​​实现单个文件的定时删除功能。以下是具体分析和操作建议:🔍 一、Expires字段的功能解析​​核心作用​​Expires是OBS系统定义的元数据字段,用于​​指定对象的过期删除时间​​(单位为天)。上传时设置该字段后,对象将在指定天数后被自动删除,无需依赖桶级的生命周期规则。​​示例​​:设置Expires=7,对象将在上传满7天后自动删除。​​与生命周期的区别​​:此字段仅作用于当前上传的对象,而生命周期规则覆盖整个桶或前缀匹配的批量对象。​​技术实现方式​​​​API/SDK支持​​:通过PUT或POST请求上传对象时,在请求头中添加x-obs-expires字段并赋值为整数(如x-obs-expires: 7)。​​obsutil的限制​​:当前版本的obsutil命令行工具​​不支持直接在上传命令中设置Expires参数​​。官方文档明确该功能仅可通过API或SDK实现。⚙️ 二、替代方案:如何实现上传时设置过期若需在上传时指定过期时间,可通过以下两种方式:​​使用OBS SDK(推荐)​​以Python SDK为例,上传时通过expires参数设置:from obs import ObsClientclient = ObsClient(access_key_id='AK', secret_access_key='SK', server='https://your-endpoint')# 设置7天后过期resp = client.put_file('bucketname', 'objectname', 'localfile', expires=7)支持语言:Java/Python/Go等主流SDK均提供expires参数。​​调用REST API​​在PUT请求头中显式添加x-obs-expires:PUT /objectname HTTP/1.1Host: bucketname.obs.cn-north-4.myhuaweicloud.comx-obs-expires: 7需自行处理签名和文件分块等细节。⚖️ 三、与生命周期规则的对比​​特性​​​​Expires字段(对象级)​​​​生命周期规则(桶级)​​​​配置方式​​上传时单个设置桶级别批量配置​​灵活性​​针对不同对象设置不同过期时间按前缀/标签统一规则​​功能范围​​仅支持删除,不支持存储类型转换支持删除、低频/归档存储转换​​适用场景​​临时文件、短期日志长期归档、存储成本优化​​运维复杂度​​低(无需维护规则)中(需管理规则优先级)⚠️ 四、关键注意事项​​优先级冲突​​若对象同时匹配桶生命周期规则和Expires字段,​​对象级Expires的删除操作优先执行​​。​​时间计算规则​​过期计时从对象上传完成后的​​下一个UTC零点开始​​(例如6月27日15:00上传,6月28日00:00开始计时)。实际删除可能延迟≤24小时(系统扫描周期影响)。​​多版本控制​​若桶启用了多版本,需为每个版本单独设置Expires,否则仅当前版本受影响。💎 五、最佳实践建议​​临时数据场景​​:使用SDK上传时设置expires参数,避免维护生命周期规则。​​长期管理需求​​:若需统一管理大量对象(如日志归档),仍建议配置生命周期规则,支持存储类型自动降级。​​工具选择​​:obsutil → 仅基础上传/下载;​​SDK/API​​ → 需高级功能(过期策略、加密等)。可通过华为云OBS SDK文档查看完整代码示例:OBS SDK参考。
  • [问题求助] 使用obsutil上传文件可以设置过期策略吗?
    使用obsutil上传文件可以设置过期策略吗?发现OBS的定时删除,只能通过设置生命周期来完成。对于我的需求来说有点重型,我的想法是在上传的时候通过一个参数指定7天后过期。通过查看官网文档发现有个元数据字段Metadata中的系统定义的对象元数据Expires字段不知道是否能使用,官网的解释是(设置缓存时间),感觉解释过于简单不是很详细。
  • [互动交流] obs上传报错
    单独使用main方法,文件可以正常上传,但在服务器跑程序时,报错2025-06-22 15:19:31.825|ERROR|com.wshoto.material.filesystem.starter.service.impl.ObsCloudyFileClientImpl||||wshoto-bigapp-conversation|172.16.0.147:6413|ConsumeMessageThread_4|com.wshoto.material.filesystem.starter.service.impl.ObsCloudyFileClientImpl.upload:122|ObsCloudyFileClientImpl.upload#cloudyException.com.wshoto.material.filesystem.starter.domain.exception.CloudyException: @082007@上传失败        at com.wshoto.material.filesystem.starter.manager.ObsManager.upload(ObsManager.java:162)        at com.wshoto.material.filesystem.starter.service.impl.ObsCloudyFileClientImpl.upload(ObsCloudyFileClientImpl.java:117)        at com.wshoto.cvs.tools.filesystem.client.DefaultSystemClient.upload(DefaultSystemClient.java:25)        at com.wshoto.cvs.tools.filesystem.FileSystemManager.writeString(FileSystemManager.java:52)        at com.wshoto.cvs.tools.filesystem.FileSystemManager.attemptWriteString(FileSystemManager.java:82)        at com.wshoto.cvs.pull.application.consumer.PullCipherMessageConsumer.cvsPullEvent(PullCipherMessageConsumer.java:106)        at com.wshoto.cvs.pull.application.consumer.PullCipherMessageConsumer$$FastClassBySpringCGLIB$$29ef48b.invoke(<generated>)        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)        at com.wshoto.stream.autoconfigure.aspect.RMQLaneTransferAspect.doAround(RMQLaneTransferAspect.java:119)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:498)        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)        at com.wshoto.cvs.pull.application.consumer.PullCipherMessageConsumer$$EnhancerBySpringCGLIB$$f1dee9fa.cvsPullEvent(<generated>)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:498)        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:169)        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:119)        at org.springframework.cloud.stream.binding.StreamListenerMessageHandler.handleRequestMessage(StreamListenerMessageHandler.java:55)        at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:136)        at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:56)        at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)        at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)        at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)        at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:72)        at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:317)        at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:272)        at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)        at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)        at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)        at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)        at org.springframework.integration.endpoint.MessageProducerSupport.sendMessage(MessageProducerSupport.java:216)        at com.alibaba.cloud.stream.binder.rocketmq.integration.RocketMQInboundChannelAdapter.access$300(RocketMQInboundChannelAdapter.java:42)        at com.alibaba.cloud.stream.binder.rocketmq.integration.RocketMQInboundChannelAdapter$BindingRocketMQListener.lambda$onMessage$0(RocketMQInboundChannelAdapter.java:148)        at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329)        at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:225)        at com.alibaba.cloud.stream.binder.rocketmq.integration.RocketMQInboundChannelAdapter$BindingRocketMQListener.onMessage(RocketMQInboundChannelAdapter.java:147)        at com.alibaba.cloud.stream.binder.rocketmq.integration.RocketMQInboundChannelAdapter$BindingRocketMQListener.onMessage(RocketMQInboundChannelAdapter.java:140)        at com.alibaba.cloud.stream.binder.rocketmq.consuming.RocketMQListenerBindingContainer$DefaultMessageListenerConcurrently.consumeMessage(RocketMQListenerBindingContainer.java:420)        at org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService$ConsumeRequest.run(ConsumeMessageConcurrentlyService.java:392)        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)        at java.util.concurrent.FutureTask.run(FutureTask.java:266)        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)        at java.lang.Thread.run(Thread.java:748)Caused by: com.wshoto.material.filesystem.starter.domain.exception.CloudyException: @082007@上传失败        at com.wshoto.material.filesystem.starter.manager.ObsManager.upload(ObsManager.java:145)        ... 59 common frames omittedCaused by: com.obs.services.exception.ObsException: OBS service Error Message. java.lang.reflect.InvocationTargetException        at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:540)        at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:403)        at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:284)        at com.wshoto.material.filesystem.starter.manager.ObsManager.upload(ObsManager.java:143)        ... 59 common frames omittedCaused by: java.lang.reflect.InvocationTargetException: null        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:498)        at com.obs.services.internal.utils.ReflectUtils.toBase64(ReflectUtils.java:90)        at com.obs.services.internal.utils.ServiceUtils.toBase64(ServiceUtils.java:339)        at com.obs.services.internal.utils.ServiceUtils.signWithHmacSha1(ServiceUtils.java:179)        at com.obs.services.internal.utils.AbstractAuthentication.calculateSignature(AbstractAuthentication.java:38)        at com.obs.services.internal.utils.AbstractAuthentication.makeAuthorizationString(AbstractAuthentication.java:53)        at com.obs.services.internal.RestStorageService.authorizeHttpRequest(RestStorageService.java:867)        at com.obs.services.internal.RestStorageService.addBaseHeaders(RestStorageService.java:712)        at com.obs.services.internal.RestStorageService.tryRequest(RestStorageService.java:454)        at com.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:406)        at com.obs.services.internal.service.ObsObjectBaseService.putObjectImpl(ObsObjectBaseService.java:132)        at com.obs.services.AbstractObjectClient.access$800(AbstractObjectClient.java:60)        at com.obs.services.AbstractObjectClient$5.action(AbstractObjectClient.java:291)        at com.obs.services.AbstractObjectClient$5.action(AbstractObjectClient.java:285)        at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:393)        ... 61 common frames omittedCaused by: java.lang.RuntimeException: Stub!        at android.util.Base64.encode(Base64.java:10)        ... 79 common frames omitted
  • [互动交流] OBS某一个桶的域名对应的IP和OBS集群的IP是一个吗?
    我在电脑上ping 桶的域名 不通,提示Name or service not known。因该是域名解析的问题,我如果在自己电脑的host文件中增加这条域名解析规则,该怎么添加呢?我现在只知道OBS存储集群的IP,但是这个集群下有很多桶,那么其中某一个桶的域名对应的IP和OBS存储集群的IP是一个吗?如果不是,我该怎么知道我这个特定的桶对应的IP呢?
  • [互动交流] 对象存储进行多版本控制后,删除对象后未出现“已删除对象”一栏
    对象存储进行多版本控制后,删除对象后仅标记“标记删除”未出现“已删除对象”一栏,是什么原因?如何解决?“已删除对象”一栏是否已经被移除了?以前的是会在对象旁边出现“已删除对象一栏”如下图:
  • [技术干货] 赛题解读|2025年度中国青年“揭榜挂帅”擂台赛·华为赛道
    挑战杯是“挑战杯”全国大学生系列科技学术竞赛的简称,是由共青团中央、中国科协、教育部和全国学联共同主办的全国性的大学生课外学术实践竞赛。今年,本届大赛调整为中国青年科技创新“揭榜挂帅”擂台赛,旨在进一步围绕“硬科技”创新、“卡脖子”关键核心技术攻关。华为深度参与本届“揭榜挂帅”,助力科技创新,设置22个奖项。总奖金池30万元,其中擂主团队奖金10万元。获奖者更有机会进入华为人才储备池,并优先获得实习及就业的推荐机会。 详情请点击:cid:link_001 赛题介绍赛题名称:推理大模型的训练调优与性能加速助力全栈自主AI赛题背景在大语言模型(LLMs)迅速发展的浪潮中,推理能力和运行效率的显著进步正推动着AI技术走向更广泛的应用领域。2025年,以OpenAI的o1系列和DeepSeek R1为代表的模型,不仅在复杂任务如数学解题、编程上展现出卓越能力,还通过技术创新如量化、模型并行(MOE)、知识蒸馏等,大幅提升了模型在轻量化设备上的部署可行性。 华为命题旨在应用全栈自主AI开发工具链,基于昇腾AI云服务、Ascend-snt9b AI芯片、CANN异构计算架构和ModelArts开发平台,提升轻量级模型的推理能力和性能。参赛者将利用强化学习、微调、知识蒸馏、量化等方法优化指定模型,同时探索模型部署于端侧设备的潜力,促进模型在实际场景中的应用。 赛题说明本次比赛分为初赛和总决赛,具体要求如下:初赛:组委会提供Qwen轻量级模型和示例工程,参赛团队选择强化学习(如PPO)或知识蒸馏技术,在ModelArts环境中对模型进行微调,同时优化推理性能。初赛阶段分为A榜和B榜,其中B榜的性能部分要求选手必须有算子融合、优化方面的工作。初赛最终排名以B榜成绩和代码核查结果为准,筛选出一定数量的队伍入围。总决赛(终审擂台赛):参赛者需准备PPT进行答辩,介绍技术方案和应用demo,阐述推理能力和性能优化的方法及其实际应用场景。酌情加分项:使用华为开发者空间提供的相关资源和服务、端侧应用鸿蒙适配、及其他华为开放能力调用。 * 具体的指导文档点击文末「 阅读原文 」 获取赛题详情哦! 02 技术能力华为昇腾AI云服务技术能力解读全栈协同优化,构建AI云底座:昇腾AI云服务重构了云基础设施,利用多样化算力池、高性能缓存池和分级存储池等多层池化技术,减少由上到下的计算代价,大大提升了资源利用率,充分释放了昇腾算力规模。 全套工具链,让AI落地更简单:AI开发生产线ModelArts,提供了包括昇腾工具链、SDK、CLI、IDE插件等端到端生产工具链,支持数据管理、模型开发、训练、推理等全流程MLOps开发,提供了统一资源调度能力,提升AI开发效率,降低AI开发门槛和成本。 开箱即用,一站式大模型开发服务:ModelArts Studio大模型即服务平台(简称MaaS),提供了简单易用的模型开发工具链,支持大模型定制开发,让模型应用与业务系统无缝衔接,降低企业AI落地的成本与难度。 * ModelArts Studio大模型即服务平台:cid:link_1华为昇腾计算技术能力解读极致性能,极简应用:CANN是昇腾针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch等,向下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。 * CANN 助力构筑昇腾AI算力平台:cid:link_3可视化,插件化:MindStudio是华为面向昇腾AI开发者提供的全流程工具链,致力于提供端到端的昇腾AI应用开发解决方案,使能开发者高效完成模型迁移与调优、模型转换与压缩、算子开发与编译等。 * MindStudio 全流程开发工具链:cid:link_2基于上述能力,参赛开发者可以提升开发效率:使用昇腾AI云服务,开发者可以在完善的工具链基础上,实现从数据处理、算法训练到模型部署的全流程开发,更快地进行模型迭代。 提升模型性能:借助高效的模型迁移调优工具链、硬件亲和的高性能算子,以及开放的自定义算子开发能力,开发者可快速提升模型推理性能。 提升应用效果:借助优质稳定的基础大模型,使用便捷的微调和测评工具,开发者可以快速构建自己的大模型应用,提高任务精度。 03 应用场景智能终端交互手机/平板AI助手:通过轻量化模型优化(如量化、知识蒸馏),可在端侧实现低延迟的语音交互、实时翻译、日程管理等,避免云端依赖。智能家居控制:优化后的模型可部署在家庭网关或边缘设备中,实现本地化自然语言指令解析(如“调节空调温度”),提升隐私性与响应速度。金融与客服智能客服系统:通过知识蒸馏压缩模型,在银行APP或呼叫中心本地部署,实现低延迟的合规性问答与交易指导。风险实时监控:轻量化模型分析交易流水,快速识别欺诈行为,提升边缘计算场景下的响应效率。医疗与生物技术电子病历分析:在医疗终端部署优化模型,辅助医生快速生成诊断建议(需结合联邦学习保障数据安全)。基因数据推理:通过模型并行技术加速基因组序列分析,缩短科研周期。 04 技术案例美图随着美图AIGC应用版图扩大,算力供应十分紧张,华为云为美图提供从昇腾AI云服务、大模型到上层应用的全方位支持,与美图共建全栈AI解决方案。通过华为云ModelArts一站式AI开发平台,为美图提供数据处理、算法开发、模型训练、模型管理、模型部署等全流程AI开发技术能力,满足复杂场景需求。千卡集群线性度95%、昇腾云脑1000+故障模式、故障发现<1min等领先的AI基础设施能力,保障美图的大规模训练快速迭代。
总条数:1487 到第
上滑加载中