-
当一个桶下的文件,一直在追加写入的时候,文件大小是否有限制
-
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服务环境搭建 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
-
// 创建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' });
-
问题描述:我们目前有一个下载,下载文件是对象存储里面的一个文档。 用户在前端点击下载的时候,浏览器会新标签页打开这个对象存储文档的地址。用户复制出去,其他人就可以随意打开这个文档,看到里面的内容。想要实现的情况:用户通过复制出去的地址,别人无法进行打开或者查看里面的内容。
-
使用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。 异常错误消息:位置约束与此请求发送到的特定于区域的终结点不兼容。
-
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.挂载后是否可以像华为弹性云一样在本地对文件进行 增/删/改 操作
-
问题 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,并且已经编译成功获得了库文件,如何将这些库文件导入到C++项目中呢,请给出详细的操作及设置步骤,需要设置哪些路径等等,我是一名小白,希望得到大家的帮助,谢谢!
-
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); } } });
-
使用流式上传后台报错:
-
@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调用接口,总是报
-
状况描述: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" };}
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签