• [互动交流] obs桶下的单个对象是否有大小限制
    当一个桶下的文件,一直在追加写入的时候,文件大小是否有限制
  • [互动交流] [java]obs在使用InputStream stream = obsObject.getObjectContent() 返回为null
    ListObjectsRequest request = new ListObjectsRequest(BUCKET_NAME); request.setPrefix(prefix);ObjectListing result = obsClient.listObjects(request);for (ObsObject obsObject : result.getObjects()) {try (InputStream stream = obsObject.getObjectContent()) { // do something } catch (Exception e) { }}
  • [技术干货] OBS学习路线图总结
    帮助文档OBS服务环境搭建 cid:link_2开发环境准备 cid:link_3安装SDK cid:link_4获取服务地址 cid:link_5初始化OBS客户端 cid:link_6创建桶 cid:link_7上传对象 cid:link_8下载对象 cid:link_9列举对象 cid:link_10删除对象 cid:link_11OBS客户端通用示例 cid:link_12视频教程对象存储服务:便捷管理存储资源 cid:link_0沙盘试验OBS基础入门实践 cid:link_1快速上手对象存储服务 OBS cid:link_13
  • [互动交流] Browser案例中,AKSK放到前端安全性如何保障?有没有其他方案
    // 创建ObsClient实例 var obsClient = new ObsClient({ // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AccessKeyID和SecretAccessKey。 // 前端本身没有process对象,可以使用webpack类打包工具定义环境变量,就可以在代码中运行了。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html access_key_id: process.env.AccessKeyID, secret_access_key: process.env.SecretAccessKey, // 这里以华北-北京四为例,其他地区请按实际情况填写 server: 'https://obs.cn-north-4.myhuaweicloud.com' });
  • [互动交流] obs桶策略问题
    问题描述:我们目前有一个下载,下载文件是对象存储里面的一个文档。 用户在前端点击下载的时候,浏览器会新标签页打开这个对象存储文档的地址。用户复制出去,其他人就可以随意打开这个文档,看到里面的内容。想要实现的情况:用户通过复制出去的地址,别人无法进行打开或者查看里面的内容。
  • [互动交流] 使用s3 sdk v2版本的sdk访问华为云报错,查了一下是region和域名没对应上,实际代码已经对应上了,求助
    使用s3 sdk v2版本的sdk访问华为云,访问报api error IllegalLocationConstraintException: The  location constraint is incompatible for the
  • [互动交流] 创建桶的时候,出现异常
    Exception errorcode: IllegalLocationConstraintException, when create a bucket.Exception errormessage: The location constraint is incompatible for the region specific endpoint this request was sent to.异常错误代码:创建bucket时出现IllegalLocationConstraintException。 异常错误消息:位置约束与此请求发送到的特定于区域的终结点不兼容。
  • [互动交流] obs java的sdk在流式下载的时候有几率io异常
    sdk版本为3.21.11,实现的功能是依次下载obs内多个文件,并打包生成压缩包放在硬盘路径内首先在本地pc测试无问题,均能正常依次下载文件,但在华为云服务器(华北北京4的服务器,带宽5M)上运行,有很高频率压缩包会生成失败使用文档提供的 带获取进度的下载 示例来测试,观察日志发现,压缩包生成失败的原因,是在某几个文件上会有很高的频率下载到一定进度后就无响应(进度百分比的日志输出到不固定的某个进度后就停止了),直到超过设置的ConnectionTimeout和SocketTimeout时间,才抛出了SocketTimeoutException: Read timed out的异常(未捕获到ObsException异常),进而造成压缩包生成失败问题1:是否有办法继续定位 文件下载到一定进度后就无响应 问题原因的办法?问题2:如果考虑 捕获到SocketTimeoutException: Read timed out后进行重试机制,这边就希望能将设置的ConnectionTimeout和SocketTimeout时间缩小以减少重试的等待时间,但如果因为下载的文件过大,导致文件没有在这两个时间内下载完成,是否也会直接下载失败?注:试过直接在服务器下的浏览器访问这几个文件的url地址,均能正常获取到,所以我猜不是网络原因
  • [互动交流] 其他弹性云是否可以挂载华为并行文件系统
    1.是否可以使用腾讯或阿里弹性云服务器的k8s中挂载华为并行文件系统2.挂载后是否可以像华为弹性云一样在本地对文件进行 增/删/改 操作
  • [技术干货] 【FAQ】OBS6月问题汇总,及相关SDK下载地址
    问题  1. 问题:obs使用inputStream流式分段上传文件失败  论坛地址:https://bbs.huaweicloud.com/forum/thread-0210153832307793018-1-1.html 解决方案:obs java sdk不支持流进行分段上传,建议先落盘再用https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0611.html方式上传对象。  2. 问题:使用Obs,怎么用java获取临时凭证  之前用的别的云,实现代码如下:   ``` DefaultProfile profile = DefaultProfile.getProfile(  OssConfiguration.region, OssConfiguration.accessKey, OssConfiguration.secretKey);  IAcsClient client = new DefaultAcsClient(profile);  AssumeRoleRequest request = new AssumeRoleRequest();  request.setDurationSeconds(OssConfiguration.expire);  request.setRoleArn(OssConfiguration.roleArn);  request.setRoleSessionName(OssConfiguration.roleSessionName);  AssumeRoleResponse.Credentials response = client.getAcsResponse(request).getCredentials();  ```  切换到华为云,代码要怎么实现呢, 使用到哪些类?  论坛地址:https://bbs.huaweicloud.com/forum/thread-0273153378583756006-1-1.html 解决方案:通过委托获取临时访问密钥和securitytoken:https://support.huaweicloud.com/api-iam/iam_04_0101.html   问题2:这个api看见了,不知道在java怎么弄。我想问的是“使用到哪些类”,具体怎么实现? 我查到类似代码: BasicCredentials basicCredentials = new BasicCredentials()     .withAk(ak)     .withSk(sk)     .withSecurityToken(securityToken)     .withProjectId(projectId)  这个里面的ak、sk、projectId是配置好的,那securityToken这个要调用什么类怎么获取呢? 2024-06-13 10:08:30 解决方案2:可以用这个BasicCredentials basicCredentials = new BasicCredentials()  试试   附录:华为云OBS参考文档地址 1. Java https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0001.html 2. Python https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0400.html 3. C https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0004.html 4. Go https://support.huaweicloud.com/sdk-go-devg-obs/obs_23_0001.html 5. BrowserJS https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0001.html 6. NET https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0001.html 7. Android https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0001.html 8. iOS https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0001.html 9. PHP https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0001.html 10. Node.js https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0001.html 
  • [互动交流] C-OBS-SDK库文件如何导入C++项目中
    我现在已经下载了C-OBS,并且已经编译成功获得了库文件,如何将这些库文件导入到C++项目中呢,请给出详细的操作及设置步骤,需要设置哪些路径等等,我是一名小白,希望得到大家的帮助,谢谢!
  • [互动交流] SDK下载的流式下载返回的result.InterfaceResult.Content内容是pk开头,下载后的文件异常
    const obs_client = new ObsClient(          {            access_key_id: this.OBS_data.access_key_id, // 你的ak            secret_access_key: this.OBS_data.secret_access_key, // 你的sk            server: this.OBS_data.endpoint, // 你的endPoint          }        )        // 下载对象的目标路径,包含文件名。        const SaveAsFile = 'C:\Windows\zbcfile';        obs_client.getObject({          Bucket: this.OBS_data.bucket_name,          Key: file.name,          // SaveAsFile,          // SaveAsStream: true        }, (err, result) => {          if (err) {            console.log('GetObject Failed')            console.error('Error-->' + err);          } else {            if (result.CommonMsg.Status < 300) {              console.log(result.InterfaceResult.Content)              //文件流进行下载---------------------------------------------------              // this_.$downloadBlob(new Blob([result.InterfaceResult.Content],{type:result.InterfaceResult.ContentType}), file.name);              // 拼接的文件地址下载-----------------------------              // const fileUrl = `http://${this.OBS_data.bucket_name}.${this.OBS_data.endpoint}/${file.name}`              // const link = document.createElement('a');              // link.href = fileUrl;              // link.style.display = 'none';              // document.body.appendChild(link);              // link.click();              // document.body.removeChild(link);            } else {              console.log('GetObject Failed')              console.log('ErrorCode-->' + result.CommonMsg.Code);              console.log('ErrorMessage-->' + result.CommonMsg.Message);            }          }        });
  • [互动交流] obs使用inputStream流式分段上传文件失败
    使用流式上传后台报错:
  • [互动交流] obs分段上上传失败
    @PostMapping("/uploadPart1") public String uploadPart1(MultipartFile file) throws Exception { List<PartEtag> partEtags = Collections.synchronizedList(new ArrayList<PartEtag>()); String objectKey = String.valueOf(UUID.randomUUID()); // 1、获取uploadId InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(obsEntity.getBucketName(), keySuffixWithSlash + objectKey); InitiateMultipartUploadResult result = obsClient.initiateMultipartUpload(request); String uploadId = result.getUploadId(); // 2、分段上传 long partSize = 1*1024*1024; // 1MB long fileLength = file.getSize(); long partCount = fileLength % partSize == 0 ? fileLength / partSize : fileLength / partSize + 1; if(partCount > 10000) { throw new Exception(); } InputStream inputStream = file.getInputStream(); for (long i = 0; i < partCount; i++) { long offset = i * partSize; long currPartSize = (i + 1 == partCount) ? fileLength - offset : partSize; UploadPartRequest uploadPartRequest = new UploadPartRequest(); uploadPartRequest.setBucketName(obsEntity.getBucketName()); uploadPartRequest.setObjectKey(keySuffixWithSlash + objectKey); uploadPartRequest.setUploadId(uploadId); uploadPartRequest.setInput(inputStream); uploadPartRequest.setPartSize(currPartSize); uploadPartRequest.setOffset(offset); uploadPartRequest.setPartNumber((int) (i+1)); UploadPartResult uploadPartResult = obsClient.uploadPart(uploadPartRequest); partEtags.add(new PartEtag(uploadPartResult.getEtag(), uploadPartResult.getPartNumber())); } if(partEtags.size() != partCount) { throw new Exception(); }// listAllParts(uploadId,objectKey); // 3、开启聚合 Collections.sort(partEtags, new Comparator<PartEtag>() { @Override public int compare(PartEtag o1, PartEtag o2) { return o1.getPartNumber() - o2.getPartNumber(); } }); CompleteMultipartUploadRequest completeMultipartUploadRequest = new CompleteMultipartUploadRequest(obsEntity.getBucketName(), keySuffixWithSlash + objectKey, uploadId, partEtags); obsClient.completeMultipartUpload(completeMultipartUploadRequest); return "success"; }用postman调用接口,总是报
  • [互动交流] .NET MVC应用中,下载文件打不开
    状况描述:1、自己创建word文档并用obs-browser上传到OBS,然后通过页面下载,能打开文件;2、服务器后台程序通过PutObject转移到OBS的大量文档,通过页面下载后打不开,但是用obs-browser下载来可以打开。不知缺少什么没有设置?控制器返回FileContentResult,代码如下或者有更好的方式,望指点。谢谢:public FileContentResult Download(int id){ ObsConfig config = new ObsConfig(); config.Endpoint = "https://obs.cn-north-4.myhuaweicloud.com"; string bucketName = "mybucketName"; string accessKey = Environment.GetEnvironmentVariable("AccessKeyID", EnvironmentVariableTarget.Machine); string secretKey = Environment.GetEnvironmentVariable("SecretAccessKey", EnvironmentVariableTarget.Machine); ObsClient client = new ObsClient(accessKey, secretKey, config); //string obsurl = "%E6%A1%B6%E7%AD%96%E7%95%A5.png"; string obsurl = "%E4%B8%80%E4%B8%AA%20%E8%87%AA%E5%BB%BA%20%E6%96%87%E6%A1%A3.docx"; //string obsurl = "3/113/3/20210406092732/some.docx"; string utfurl = HttpUtility.UrlDecode(obsurl); GetObjectRequest request = new GetObjectRequest() { BucketName = bucketName, ObjectKey = utfurl }; string contentType = string.Empty; byte[] bytes = null; using (GetObjectResponse response = client.GetObject(request)) { contentType = response.ContentType; bytes = new byte[response.ContentLength]; response.OutputStream.Read(bytes, 0, bytes.Length); } return new FileContentResult(bytes, contentType) { FileDownloadName = "一个 自建 文档.docx" };}
总条数:1591 到第 页
上滑加载中