• [问题求助] 通过临时URL访问视频,可以快速获取视频的封面吗?有没有解决方案呢
    通过临时URL访问视频,可以快速获取视频的封面吗?有没有解决方案呢
  • [区域初赛赛题问题] 如何打印程序中的参数到控制台
    我想将程序中的一些参数 print 到控制台来进行调试,该如何实现
  • [问题求助] 请问下c#使用OBS 断点续传,上传途中如何终止上传,未找到合适的方法
    请问下c#使用OBS 断点续传,上传途中如何终止上传,未找到合适的方法
  • [分享交流] 开发 picgo-plugin-huawei 插件,解决华为云平台外链限制问题
    在技术博客平台中,外链的使用常常受到限制,这给我们的写作和内容展示带来了一定的不便。为了应对这一问题,我开发了 picgo-plugin-huawei 插件,它能够有效地解决外链限制带来的困扰,让我们能够更加自由地在博客中展示图片等内容。一、开发背景在写作技术博客的过程中,我们经常会需要插入图片来辅助说明。然而,许多技术博客平台为了保障数据安全、网站性能、内容管理以及维护品牌形象等多方面的原因,对外链的使用进行了严格的限制。这就导致我们无法直接使用外部链接来引用图片,而只能依赖平台提供的有限的图片存储空间或者寻找其他替代方案。比如最近我在华为云社区活跃的时候,发现我之前买的阿里云的oss存储就用不了,这给我们博主在使用华为云去发文的时候带来的体验很少不好。于是我就在想,如何解决,当时反馈给华为云之后,华为云肯定要排期才能安排,对于现在的我肯定不适用。于是我就在想,能不能开发这样一个插件。因为我平常用typora写博客比较多,然后配合picgo来上传图片,于是我就基于picgo的插件系统开发了这个三方库/插件。二、插件功能picgo-plugin-huawei 插件主要具备以下功能:图片上传 :它可以将本地的图片文件快速上传到华为云存储。无论是常见的 JPEG、PNG 格式,还是其他一些特殊的图片格式,插件都能够很好地支持。用户只需简单地配置一下华为云的相关参数,如 Access Key ID、Secret Access Key 等,就可以轻松地将图片上传到指定的存储桶中。图片链接生成 :当图片上传成功后,插件会自动生成对应的华为云存储图片链接。这些链接具有高可用性和稳定性,我们可以在博客中直接使用它们来展示图片。而且,生成的链接格式规范、易于识别,方便我们在写作过程中进行引用和管理。自定义配置 :插件提供了丰富的自定义配置选项。用户可以根据自己的需求,设置图片的存储路径、访问权限等参数。例如,我们可以将图片存储在特定的文件夹中,以便更好地组织和管理图片资源;也可以设置图片的访问权限为公开或私有,以满足不同场景下的需求。三、使用方法使用 picgo-plugin-huawei 插件非常简单:安装插件 :首先,我们需要在 PicGo 的插件市场中找到 picgo-plugin-huawei 插件,并进行安装。安装过程非常快捷,只需按照提示操作即可。配置插件 :安装完成后,我们需要在 PicGo 中对插件进行配置。打开 PicGo 的设置界面,找到 picgo-plugin-huawei 插件的配置选项,然后输入华为云的相关信息,如 Access Key ID、Secret Access Key、存储桶名称等。配置完成后,点击保存按钮即可。上传图片 :配置好插件后,我们就可以开始上传图片了。在 PicGo 的主界面中,选择要上传的图片文件,然后点击 “上传” 按钮。插件会自动将图片上传到华为云存储,并生成对应的图片链接。使用图片链接 :上传成功后,我们可以在 PicGo 的界面中看到生成的图片链接。将该链接复制到我们的技术博客中,就可以实现图片的正常显示了。而且,由于图片存储在华为云上,我们可以不用担心图片链接失效或者图片无法显示的问题。四、插件优势picgo-plugin-huawei 插件具有以下优势:提高安全性 :通过将图片存储在华为云上,我们避免了在博客中直接使用外链可能带来的安全风险。华为云具有强大的安全防护机制,能够保障我们的数据安全。提高稳定性 :华为云的基础设施非常稳定,能够保证图片的高可用性和快速访问。我们无需担心图片链接失效或者图片加载缓慢的问题,从而为读者提供更好的阅读体验。方便易用 :插件的使用方法非常简单,无需具备专业的技术知识即可轻松上手。而且,插件提供了丰富的自定义配置选项,能够满足不同用户的需求。节省成本 :相比于一些商业的图片存储服务,华为云提供了较为优惠的价格。使用 picgo-plugin-huawei 插件,我们可以以较低的成本实现图片的存储和展示,为个人博主和小型团队节省了一定的开支。五、应用案例在实际应用中,许多技术博主已经开始使用 picgo-plugin-huawei 插件来解决外链限制问题。例如,我现在在撰写这篇技术博客时,需要插入大量的图片来展示流程。由于博客平台限制外链,我无法直接使用外部图片链接。于是,使用了 picgo-plugin-huawei 插件,将图片上传到华为云存储,并在博客中使用生成的图片链接。这样,不仅成功地解决了外链限制问题,还为华为云用户提供了清晰、稳定的图片展示。六、未来展望未来,我将继续对 picgo-plugin-huawei 插件进行优化和升级。一方面,我会增加插件的功能,如支持更多的图片格式、增加图片压缩和优化功能等,以满足用户日益增长的需求。另一方面,我会加强插件的安全性和稳定性,确保用户的数据安全和使用体验。同时,我也希望能够与更多的技术博客平台合作,将 picgo-plugin-huawei 插件推广到更广泛的用户群体中,为更多的技术博主提供便利。总之,picgo-plugin-huawei 插件为解决技术博客平台外链限制问题提供了一个有效的解决方案。通过使用该插件,我们能够更加自由地在博客中展示图片等内容,提高博客的质量和可读性。我相信,在未来的发展中,picgo-plugin-huawei 插件将会发挥越来越重要的作用,为技术博客的发展做出更大的贡献。七、相关链接PicGo 官方文档华为云 OBS 文档项目仓库插件链接八、致谢感谢华为云的同事拉会帮我解决权限问题。才有了这个项目的顺利演示。九、遗留提示不准确
  • [问题求助] 求大佬帮忙看看Vue2.0使用obs的js上传出现报错的问题
    运行项目的时候到这里导入就会报错,报错是有什么解决办法吗?大佬们
  • [技术干货] 【FAQ】OBS2025年2月问题及解决方案汇总
    问:js使用临时凭证做上传功能,出现跨域错误的提示, 上传请求状态码是403https://bbs.huaweicloud.com/forum/thread-0251175342474799015-1-1.html解决方案:https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0201.html 你的cors规则中补充扩展头域没有配置全,请参考此文档。参考一下如下代码// 指定允许跨域请求的来源ArrayList allowedOrigin = new ArrayList();allowedOrigin.add( “*”);rule.setAllowedOrigin(allowedOrigin);// 指定允许跨域请求的方法ArrayList allowedMethod = new ArrayList();allowedMethod.add(“GET”);allowedMethod.add(“POST”);allowedMethod.add(“PUT”);allowedMethod.add(“DELETE”);allowedMethod.add(“HEAD”);rule.setAllowedMethod(allowedMethod);// 指定允许跨域请求的头域ArrayList allowedHeader = new ArrayList();allowedHeader.add(“*”);rule.setAllowedHeader(allowedHeader);// 指定允许跨域请求的响应中的附加头域ArrayList exposeHeader = new ArrayList();exposeHeader.add(“ETag”);exposeHeader.add(“Content-Type”);exposeHeader.add(“Content-Length”);exposeHeader.add(“Cache-Control”);exposeHeader.add(“Content-Disposition”);exposeHeader.add(“Content-Encoding”);exposeHeader.add(“Content-Language”);exposeHeader.add(“Expires”);exposeHeader.add(“x-obs-request-id”);exposeHeader.add(“x-obs-id-2”);exposeHeader.add(“x-reserved-indicator”);exposeHeader.add(“x-obs-api”);exposeHeader.add(“x-obs-version-id”);exposeHeader.add(“x-obs-copy-source-version-id”);exposeHeader.add(“x-obs-storage-class”);exposeHeader.add(“x-obs-delete-marker”);exposeHeader.add(“x-obs-expiration”);exposeHeader.add(“x-obs-website-redirect-location”);exposeHeader.add(“x-obs-restore”);exposeHeader.add(“x-obs-version”);exposeHeader.add(“x-obs-object-type”);exposeHeader.add(“x-obs-next-append-position”);rule.setExposeHeader(exposeHeader);问:http获取到的json怎么转成对象存储https://bbs.huaweicloud.com/forum/thread-02127175326937089007-1-1.html{“status”: 1,“data”: {“category”: [{“title”: “产经”,“url”: “”,“subcat”: [{“title”: “消费”,“url”: “”,“type”: “5”},{“title”: “医药”,“url”: “”,“type”: “5”}],“type”: 1}]}}各位老师我刚开始接触arkts开发,我用http获取到了json数据,但是本地要使用的话得存起来,我想到的是存到对象里面,但是找了好多资料都没有搞定,哪位老师有时间帮忙教导一下,我用了class-transformer也没搞定,基础太差了,谢谢路过的老师解决方案:https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0602.html obs支持直接上传数据流; https://support.huaweicloud.com/api-obs/obs_04_0080.html api底层接口。obsClient.putObject(PutObjectRequest request) 用这个方法,直接上传对象问:编译sdk-c-obs源码报错报错https://bbs.huaweicloud.com/forum/thread-0251175250005290011-1-1.html在suse linux 12.5平台上, gcc版本为4.8.5,编译最新的sdk-c-obs源码报错,报错提示:ld: …/lib/libxml2.so.2: undefined reference to lzma_auto_decoder@XZ_5.0 , 可能会是什么原因,如何解决?解决方案:https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0004.html 参考官网的编译方式再试试呢。问:iOS集成OBS调用报错https://bbs.huaweicloud.com/forum/thread-0251175160221714009-1-1.html我在项目中集成了OBS,但是我在使用流上传图片文件的时候报错Can’t show file for stack frame : - stackNumber:3 - name:-[OBSStaticCredentialProvider V2Sign:configuration:error:]. The file path does not exist on the file system: /Users/hwcloud/ios sdk/ios_codehub_xcode15_obs_sourceCode/OBS/esdk_obs_ios/source/OBS/Auth/OBSServiceCredentialProvider.m我将OBS框架放到项目中没有问题,已经按照你们的SDK文档集成了。我项目是OC和Swift混编的但是我在调用的时候报错了Can’t show file for stack frame : - stackNumber:3 - name:-[OBSStaticCredentialProvider V2Sign:configuration:error:]. The file path does not exist on the file system: /Users/hwcloud/ios sdk/ios_codehub_xcode15_obs_sourceCode/OBS/esdk_obs_ios/source/OBS/Auth/OBSServiceCredentialProvider.m 这个错误应该怎么解决。解决方案:IOS集成参考一下这篇文档 https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0001.html问:使用.net core上传文件总是报错https://bbs.huaweicloud.com/forum/thread-0251173666022697060-1-1.html代码如下:PutObjectRequest request = new PutObjectRequest(){BucketName = obsTongeName,ObjectKey = objectName,InputStream = file};request.ContentType = “application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”;PutObjectResponse response = client.PutObject(request);报错信息如下:Specified method is not supported.在这期间在nuget上换了不同的版本,HuaweiCloud.SDK.Core,HuaweiCloud.SDK.OBS.Core,都试过,还是报错,到底是什么原因?麻烦哪位大神帮忙看看原因?谢谢!解决方案:如果你是外部客户请直接提工单联系sre;如果是内部客户请联系我的工号60058833问:OBS BrowserJS SDK是否有直接获取视频缩略图的方法https://bbs.huaweicloud.com/forum/thread-0251174394435303078-1-1.html需求:上传完一段视频到OBS后,想要获取视频第一帧做个预览图,求助下华为云OBS BrowserJS SDK有没有直接的方法。阿里云OSS对象存储有直接的方发可以实现解决方案:OBS不支持在线预览对象而是以附件形式下载对象的生效时间和区域。https://support.huaweicloud.com/obs_faq/obs_03_0087.html问:php使用sdk上传文件到obs报VirtualHostDomainRequiredhttps://bbs.huaweicloud.com/forum/thread-0210174739913771006-1-1.html服务器的地址是用的ip地址 使用sdk上传文件一直报403 VirtualHostDomainRequired解决方案:sdk 只要使用ip作为server地址,就自动使用path方式;建议使用官网提供的endpoint地址,配置hosts方式解决此问题。
  • [问题求助] js使用临时凭证做上传功能,出现跨域错误的提示, 上传请求状态码是403
     控制台报错上传请求异常在obs控制台已设置cors规则 
  • [问题求助] 编译sdk-c-obs源码报错报错
    在suse linux 12.5平台上, gcc版本为4.8.5,编译最新的sdk-c-obs源码报错,报错提示:ld: ../lib/libxml2.so.2: undefined reference to `lzma_auto_decoder@XZ_5.0` , 可能会是什么原因,如何解决?
  • [问题求助] php使用sdk上传文件到obs报VirtualHostDomainRequired
    服务器的地址是用的ip地址 使用sdk上传文件一直报403  VirtualHostDomainRequired
  • [问题求助] OBS BrowserJS SDK有没有直接获取视频的指定帧截图的方法
    需求:上传到OBS的视频文件,想要获取视频第一帧做个预览图,请问使用OBS BrowserJS SDK有没有直接的方法可以获取。阿里云OSS是有直接的方法可以获取,如下图:
  • [问题求助] OBS BrowserJS SDK是否有直接获取视频缩略图的方法
    需求:上传完一段视频到OBS后,想要获取视频第一帧做个预览图,求助下华为云OBS BrowserJS SDK有没有直接的方法。阿里云OSS对象存储有直接的方发可以实现,如下图:
  • [问题求助] 使用.net core上传文件总是报错
    代码如下:PutObjectRequest request = new PutObjectRequest(){    BucketName = obsTongeName,    ObjectKey = objectName,    InputStream = file};request.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";PutObjectResponse response = client.PutObject(request);报错信息如下:Specified method is not supported.在这期间在nuget上换了不同的版本,HuaweiCloud.SDK.Core,HuaweiCloud.SDK.OBS.Core,都试过,还是报错,到底是什么原因?麻烦哪位大神帮忙看看原因?谢谢!
  • [技术干货] 【技术总结】OBS上传下载对象代码示例(Java、Python、Go)
    OBS SDK对OBS服务提供的REST API进行封装,以简化用户的开发工作。可以直接调用OBS SDK提供的接口函数即可使用OBS管理数据。本文以Java、Python、Go三种SDK为例,带您快速上手OBS的基础功能上传对象以下示例展示了上传本地文件localfile到examplebucket桶中,并将对象名设置为objectname。javaimport com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.PutObjectRequest; import java.io.File; public class PutObject004 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); try { // 文件上传 PutObjectRequest request = new PutObjectRequest(); // 上传文件到examplebucket桶中 request.setBucketName("examplebucket"); // 指定上传到examplebucket桶中的文件名称 request.setObjectKey("objectname"); // 指定本地待上传文件的路径 request.setFile(new File("localfile")); obsClient.putObject(request); System.out.println("putObject successfully"); } catch (ObsException e) { System.out.println("putObject failed"); // 请求失败,打印http状态码 System.out.println("HTTP Code:" + e.getResponseCode()); // 请求失败,打印服务端错误码 System.out.println("Error Code:" + e.getErrorCode()); // 请求失败,打印详细错误信息 System.out.println("Error Message:" + e.getErrorMessage()); // 请求失败,打印请求id System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("putObject failed"); // 其他异常信息打印 e.printStackTrace(); } } } Pythonimport com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.PutObjectRequest; import java.io.File; public class PutObject004 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); try { // 文件上传 PutObjectRequest request = new PutObjectRequest(); // 上传文件到examplebucket桶中 request.setBucketName("examplebucket"); // 指定上传到examplebucket桶中的文件名称 request.setObjectKey("objectname"); // 指定本地待上传文件的路径 request.setFile(new File("localfile")); obsClient.putObject(request); System.out.println("putObject successfully"); } catch (ObsException e) { System.out.println("putObject failed"); // 请求失败,打印http状态码 System.out.println("HTTP Code:" + e.getResponseCode()); // 请求失败,打印服务端错误码 System.out.println("Error Code:" + e.getErrorCode()); // 请求失败,打印详细错误信息 System.out.println("Error Message:" + e.getErrorMessage()); // 请求失败,打印请求id System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("putObject failed"); // 其他异常信息打印 e.printStackTrace(); } } } Gopackage main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 obsClient, err := obs.New(ak, sk, endPoint) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.PutFileInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定上传对象,此处以 objectname 为例。 input.Key = "objectname" // 指定本地文件,此处以localfile为例 input.SourceFile = "localfile" // 文件上传 output, err := obsClient.PutFile(input) if err == nil { fmt.Printf("Put file(%s) under the bucket(%s) successful!\n", input.Key, input.Bucket) fmt.Printf("StorageClass:%s, ETag:%s\n", output.StorageClass, output.ETag) return } fmt.Printf("Put file(%s) under the bucket(%s) fail!\n", input.Key, input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } } 下载对象本示例用于下载examplebucket桶中的objectname对象。javaimport com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.ObsObject; import java.io.ByteArrayOutputStream; import java.io.InputStream; public class GetObject001 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。查看桶所在的endpoint请参见:https://support.huaweicloud.com/usermanual-obs/obs_03_0312.html。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); try { // 流式下载 ObsObject obsObject = obsClient.getObject("examplebucket", "objectname"); // 读取对象内容 System.out.println("Object content:"); InputStream input = obsObject.getObjectContent(); byte[] b = new byte[1024]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int len; while ((len = input.read(b)) != -1) { bos.write(b, 0, len); } System.out.println("getObjectContent successfully"); System.out.println(new String(bos.toByteArray())); bos.close(); input.close(); } catch (ObsException e) { System.out.println("getObjectContent failed"); // 请求失败,打印http状态码 System.out.println("HTTP Code:" + e.getResponseCode()); // 请求失败,打印服务端错误码 System.out.println("Error Code:" + e.getErrorCode()); // 请求失败,打印详细错误信息 System.out.println("Error Message:" + e.getErrorMessage()); // 请求失败,打印请求id System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("getObjectContent failed"); // 其他异常信息打印 e.printStackTrace(); } } } Pythonfrom obs import GetObjectRequest from obs import ObsClient import os import traceback # 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险 # 您可以登录访问管理控制台获取访问密钥AK/SK ak = os.getenv("AccessKeyID") sk = os.getenv("SecretAccessKey") # server填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 server = "https://obs.cn-north-4.myhuaweicloud.com" # 创建obsClient实例 obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server) try: # 下载对象的附加请求参数 getObjectRequest = GetObjectRequest() # 获取对象时重写响应中的Content-Type头。 getObjectRequest.content_type = 'text/plain' bucketName="examplebucket" objectKey="objectname" #流式下载 resp = obsClient.getObject(bucketName=bucketName,objectKey=objectKey, getObjectRequest=getObjectRequest, loadStreamInMemory=False) # 返回码为2xx时,接口调用成功,否则接口调用失败 if resp.status < 300: print('Get Object Succeeded') print('requestId:', resp.requestId) # 读取对象内容 while True: chunk = resp.body.response.read(65536) if not chunk: break print(chunk) resp.body.response.close() else: print('Get Object Failed') print('requestId:', resp.requestId) print('errorCode:', resp.errorCode) print('errorMessage:', resp.errorMessage) except: print('Get Object Failed') print(traceback.format_exc()) Gopackage main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 obsClient, err := obs.New(ak, sk, endPoint) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.GetObjectInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定下载对象,此处以 objectname 为例。 input.Key = "objectname" // 流式下载对象 output, err := obsClient.GetObject(input) if err == nil { // output.Body 在使用完毕后必须关闭,否则会造成连接泄漏。 defer output.Body.Close() fmt.Printf("Get object(%s) under the bucket(%s) successful!\n", input.Key, input.Bucket) fmt.Printf("StorageClass:%s, ETag:%s, ContentType:%s, ContentLength:%d, LastModified:%s\n", output.StorageClass, output.ETag, output.ContentType, output.ContentLength, output.LastModified) // 读取对象内容 p := make([]byte, 1024) var readErr error var readCount int for { readCount, readErr = output.Body.Read(p) if readCount > 0 { fmt.Printf("%s", p[:readCount]) } if readErr != nil { break } } return } fmt.Printf("List objects under the bucket(%s) fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } }
  • [问题求助] 关于Harmony开发上传对象时出现Couldn't resolve host name
    在let result = await this.obs.putObject(params);这段代码短暂卡住后被catch,日志显示"code":2300006,"message":"Couldn't resolve host name"。obs = new ObsClient({AccessKeyId: Const.CONST_AccessKeyId,SecretAccessKey: Const.CONST_SecretAccessKey,Server: Const.TEST_BUCKET_Server,PathStyle: true});     
  • 【合集】存储服务2025.01月技术干货合集
    技术干货 数据库常见的死锁cid:link_0 MySQL中操作同一条记录的死锁问题及解决cid:link_1 数据库走索引但查询仍很慢所造成的一些原因cid:link_2 mysql中常见的减少回表增加查询性能的方法cid:link_11 InnoDB的一次更新事务的背后cid:link_12 MySQL的行级锁小知识点cid:link_13 MySQL 中常见的当前读和快照读cid:link_3 华为云 GaussDB 管理平台(TPoPS)页面实时告警推送方法总结cid:link_4 quartz用GaussDB的getJobDetail方法报错“For input string: "\x"常见解决方法cid:link_14 开发者空间的ubuntu系统安装dockercid:link_5 GAUSSDB根据实际业务负载动态优化数据分片策略cid:link_15 GaussDB分布式环境下保证分布式事务ACID属性主要方式cid:link_6 使用MySQL全文索引(Full-text Index)笔记cid:link_7 实现MySQL多主复制的几种常见方法cid:link_8 MySQL的查询缓存笔记分享cid:link_9 MySQL数据库常见的实现数据备份与恢复cid:link_16 MySQL主从复制cid:link_17 MySQL 处理外键约束cid:link_18 如何设计高效的数据库索引策略cid:link_10