本文适合小白和新手 ,仅满足基本文件上传 和 访问
maven引入华为云 obs jar文件
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>esdk-obs-java</artifactId>
<version>[3.21.4,)</version>
</dependency>
代码正文如下:
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
import com.obs.services.ObsClient;
import com.obs.services.model.HttpMethodEnum;
import com.obs.services.model.PutObjectResult;
import com.obs.services.model.TemporarySignatureRequest;
import com.obs.services.model.TemporarySignatureResponse;
public class ObsService {
static String endPoint = "https://your-endpoint";
static String ak = "*** Provide your Access Key ***";
static String sk = "*** Provide your Secret Key ***";
// 桶名称 不明白的最好还是先看看入门官方文档理解一下概念
static String bucketname = "sz-uat";
static ObsClient obsClient = null;
static {
// 创建ObsClient实例
obsClient = new ObsClient(ak, sk, endPoint);
}
public static void main(String[] args) throws IOException {
// 重点 : 不同类型文件 需要带对应文件后缀
String objectname ="dealer-api/"+ UUID.randomUUID().toString()+".xls";
// 上传文件,注意:上传内容大小不能超过5GB
File file = new File("C:\\Users\\admin\\Desktop\\DealerData20210622112552.xls");
obsUpload(objectname,file);
}
/**
* 上传文件
* @param objectname
*/
public static void obsUpload(String objectname,File file ) {
try {
InputStream inputStream = new FileInputStream(file);
PutObjectResult putObjectResult = obsClient.putObject(bucketname, objectname, inputStream);
// 获取有效的访问链接
obsDownload(objectname);
inputStream.close();
// obsClient.close();
} catch (Exception e) {
System.out.println("{}文件上传失败!"+e.toString());
}
}
/**
* 获取下载链接
* @param objectname
* @throws IOException
*/
private static void obsDownload(String objectname) throws IOException {
// URL有效期,3600秒
long expireSeconds = 3600L;
TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds);
request.setBucketName(bucketname);
request.setObjectKey(objectname);
TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
System.out.println("Getting object using temporary signature url:");
System.out.println("\t" + response.getSignedUrl());
// Request.Builder builder = new Request.Builder();
// for (Map.Entry<String, String> entry : response.getActualSignedRequestHeaders().entrySet()) {
// builder.header(entry.getKey(), entry.getValue());
// }
//
// //使用GET请求下载对象
// Request httpRequest = builder.url(response.getSignedUrl()).get().build();
// OkHttpClient httpClient = new OkHttpClient.Builder().followRedirects(false).retryOnConnectionFailure(false)
// .cache(null).build();
//
// Call c = httpClient.newCall(httpRequest);
// Response res = c.execute();
// System.out.println("\tStatus:" + res.code());
// if (res.body() != null) {
// System.out.println("\tContent:" + res.body().string() + "\n");
// }
// res.close();
}
}