Open liubao68 opened 2 years ago
JAVA代码如下:
TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.PUT, obsProperties.getExpires()); request.setBucketName(bucketName); request.setObjectKey(objectKey); String url=obsClient.createTemporarySignature(request).getSignedUrl(); File file = new File("D://test.txt"); CloseableHttpClient httpClient = getIgnoreSSLClient(); CloseableHttpResponse response; HttpPut put = new HttpPut(url); // FileEntity fileEntity = new FileEntity(file, "application/jpeg"); //EntityBuilder reqEntity = EntityBuilder.create().setFile(file); InputStreamEntity entity = new InputStreamEntity(new FileInputStream(file)); entity.setChunked(false); String boundary = "----" + new Date().getTime(); entity.setContentType("multipart/form-data; boundary=" + boundary); put.setEntity(entity); put.setHeader("href", url); response = httpClient.execute(put); System.out.println(response.getStatusLine().toString());
我们的应用场景需要基于临时的URL上传,前面一部分是生产URL。 后面是使用自己的HttpClient上传,调试发现连接建立和发送数据都是正常的,只是数据发送了一部分, OBS就报告 403 错误。
同样的使用方式, nodejs可以工作。
请问下上面代码可能什么地方不对? 或者有没有对应的OBS接口可以不使用第三方库上传的? 查询了OBS文档 , 未找到通过临时URL上传的接口,只能自己写一个HTTP Client了。
Find an example here
JAVA代码如下:
我们的应用场景需要基于临时的URL上传,前面一部分是生产URL。 后面是使用自己的HttpClient上传,调试发现连接建立和发送数据都是正常的,只是数据发送了一部分, OBS就报告 403 错误。
同样的使用方式, nodejs可以工作。
请问下上面代码可能什么地方不对? 或者有没有对应的OBS接口可以不使用第三方库上传的? 查询了OBS文档 , 未找到通过临时URL上传的接口,只能自己写一个HTTP Client了。