从此

IaaS、PaaS、SaaS | 云计算平台、低代码

综合



综合



IaaS

腾讯云

COS 客户端: 说明 - 海外使用时,上传大于 1MiB 的文件会报 CosServiceException: User network is too slow...UserNetworkTooSlow: 台湾、东京服务器均报网慢,猜测是为了推广付费的“全球加速”服务(1.25元/GB),而劣化了境外所有上传线路,距离再近也如故,2026 年前则未劣化。 加线程也不能完全缓解: new TransferManager(_COSClient, Executors.newFixedThreadPool(8)); // GAE 平台上,应在内存充分的 B2 上先测下。 亲测配置“自定义源站域名”可解决: _ClientConfig.setEndpointBuilder(new UserSpecifiedEndpointBuilder("cdn.example.com", "service.cos.myqcloud.com")); // 不想签发证书可 cc.setHttpProtocol(HttpProtocol.http); 预签名链接未测 - https://cloud.tencent.com/document/product/436/35217#bf54db7f-872c-4a70-871d-b21e0afd9360 服务器暂时不可用报(重试或 System.gc() 即可) - Upload canceled. 其他优化: //_ClientConfig.setSocketTimeout(10 * 60 * 1000); // 默认30秒;解决 SocketTimeoutException。 ////对齐重试标记,避免 Resetting to invalid mark: // _ClientConfig.setReadLimit(1 * 1024 * 1024); // 默认128K;不分片则必须设置为文件总大小。 // _TransferManager.getConfiguration().setMinimumUploadPartSize(tm.getCOSClient().getClientConfig().getReadLimit()); // 分包设置;默认5MiB。 var r = HttpClient ... HttpResponse.BodyHandlers.ofInputStream() ... var is = r.body(); if (isMemoryBytes != null) { is = new ByteArrayInputStream(is.readAllBytes()); } var om = new ObjectMetadata(); // [可选] 未提供则总长度为 -1。 om.setContentLength(r.headers().firstValueAsLong("Content-Length").getAsLong()); System.setProperty(SkipMd5CheckStrategy.DISABLE_PUT_OBJECT_MD5_VALIDATION_PROPERTY, "true"); // HttpClient 响应流不可重复读。 var rPut = ManageCOS.instance().cos().putObject("b", "o/path/" + path, is, om); // rPut.getContentMd5(); var tm = new TransferManager(ManageCOS.instance().cos()); // 想看进度需包裹一层高级接口 var rv = tm.upload(new PutObjectRequest("b", "o/path/" + path, is, om)); showTransferProgress(rv); var ur = rv.waitForUploadResult(); // ur.getCrc64Ecma();

其他