java版本的oss工具类
时间: 2023-12-01 15:04:44 浏览: 82
以下是一个Java版本的OSS工具类,用于操作阿里云OSS服务:
```
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.Date;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;
public class OSSUtil {
private static String endpoint = "your_endpoint";
private static String accessKeyId = "your_accessKeyId";
private static String accessKeySecret = "your_accessKeySecret";
private static String bucketName = "your_bucketName";
/**
* 上传文件
* @param inputStream 文件流
* @param key 文件名
* @return 文件的URL地址
*/
public static String upload(InputStream inputStream, String key) {
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(inputStream.available());
PutObjectResult result = client.putObject(bucketName, key, inputStream, metadata);
return getUrl(key);
} catch (Exception e) {
e.printStackTrace();
} finally {
client.shutdown();
}
return null;
}
/**
* 上传文件
* @param file 文件
* @param key 文件名
* @return 文件的URL地址
*/
public static String upload(File file, String key) {
try {
InputStream inputStream = new FileInputStream(file);
return upload(inputStream, key);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 上传文件
* @param bytes 文件字节数组
* @param key 文件名
* @return 文件的URL地址
*/
public static String upload(byte[] bytes, String key) {
ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
return upload(inputStream, key);
}
/**
* 获取文件的URL地址
* @param key 文件名
* @return 文件的URL地址
*/
public static String getUrl(String key) {
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try {
Date expiration = new Date(System.currentTimeMillis() + 3600000);
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, key);
request.setExpiration(expiration);
URL url = client.generatePresignedUrl(request);
return url.toString();
} catch (Exception e) {
e.printStackTrace();
} finally {
client.shutdown();
}
return null;
}
}
```
使用方法:
1. 在代码中设置阿里云OSS服务的参数,如`endpoint`、`accessKeyId`、`accessKeySecret`、`bucketName`等。
2. 调用`upload()`方法上传文件,传入文件流、文件、文件字节数组和文件名,返回文件的URL地址。
3. 调用`getUrl()`方法获取文件的URL地址,传入文件名,返回文件的URL地址。
注意:在使用该工具类时需要引入阿里云OSS SDK的依赖。
阅读全文