使用 OSS 管理控制台
使用控制台步骤(摘自阿里)
- 进入 OSS 管理控制台界面。
- 在左侧存储空间列表中,单击您要向其中上传文件的存储空间。
- 单击文件管理页签
- 单击上传文件,打开上传文件对话框。
- 在上传到框中,设置文件上传到 OSS 中的存储路径。
- 当前目录:将文件上传到当前目录
OSSFileUpload 工具类
第一步 pom
<!--阿里文件上传下载-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.0.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dm</artifactId>
<version>3.1.0</version>
</dependency>
第二步 OSSFileUpload
public class OSSFileUpload {
private static final String OSS_KEY = "********"; // 阿里云OSS_KEY
private static final String OSS_SECRET = "*******************"; // 阿里云OSS_SECRET
private static final String OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com"; //阿里云OSS_ENDPOINT 杭州Url
private static final String OSS_BUCKETNAME = "*********"; // oss存储空间名称
private static final String COMMON_OSS_BUCKETNAME = "*********";// (公共平台)
/**
* 上传文件
* @param key
* @param filePath
* @throws FileNotFoundException
*/
public static void upload(String key, MultipartFile file, Boolean isCommon) throws Exception {
// 初始化OSSClient
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
// 获取指定文件的输入流
InputStream content = file.getInputStream();
// 创建上传Object的Metadata
ObjectMetadata meta = new ObjectMetadata();
// 必须设置ContentLength
meta.setContentLength(file.getSize());
// 上传Object
String bucketName = OSS_BUCKETNAME;
if (isCommon) {
bucketName = COMMON_OSS_BUCKETNAME;
}
client.putObject(bucketName, key, content, meta);
}
/**
* 上传文件
* @param key
* @param filePath
* @throws FileNotFoundException
*/
public static String upload(String key, File file, Boolean isCommon) throws Exception {
// 初始化OSSClient
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
// 获取指定文件的输入流
InputStream content = new FileInputStream(file);
// 创建上传Object的Metadata
ObjectMetadata meta = new ObjectMetadata();
// 必须设置ContentLength
meta.setContentLength(file.length());
// 上传Object
String bucketName = OSS_BUCKETNAME;
if (isCommon) {
bucketName = COMMON_OSS_BUCKETNAME;
}
// 上传文件。<yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
PutObjectResult putObjectResult = client.putObject(bucketName, key, content, meta);
content.close();
return "http://"+bucketName+".oss-cn-hangzhou.aliyuncs.com/"+key;
}
/**
* 删除指定文件名的文件
* @param key 文件名
*/
public static void deleteObject(String key, Boolean isCommon) {
// 初始化OSSClient
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
// 删除Object
String bucketName = OSS_BUCKETNAME;
if (isCommon) {
bucketName = COMMON_OSS_BUCKETNAME;
}
client.deleteObject(bucketName, key);
}
/**
* 获取指定文件名的文件
* @param key 文件名
* @return
*/
public static OSSObject getObject(String key, Boolean isCommon) {
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
String bucketName = OSS_BUCKETNAME;
if (isCommon) {
bucketName = COMMON_OSS_BUCKETNAME;
}
return client.getObject(bucketName, key);
}
/**
* 下载指定文件名到本地
* @param key
*/
public static void getObjectToFile(String key, String filePath, Boolean isCommon) {
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
// 新建GetObjectRequest
String bucketName = OSS_BUCKETNAME;
if (isCommon) {
bucketName = COMMON_OSS_BUCKETNAME;
}
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
// 下载Object到文件
client.getObject(getObjectRequest, new File(filePath));
}
/**
* 获取制定目录的文件
* @param dirName
* @return
*/
public static ObjectListing getObjects(String dirName, Boolean isCommon) {
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
// 构造ListObjectsRequest请求
String bucketName = OSS_BUCKETNAME;
if (isCommon) {
bucketName = COMMON_OSS_BUCKETNAME;
}
ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName);
// "/" 为文件夹的分隔符
listObjectsRequest.setDelimiter("/");
// 列出fun目录下的所有文件和文件夹
listObjectsRequest.setPrefix(dirName);
return client.listObjects(listObjectsRequest);
}
public static void main(String[] args) {
OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
ObjectListing listing = client.listObjects(OSS_BUCKETNAME);
// 遍历所有Object
for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) {
System.out.println(objectSummary.getKey());
}
}
第三步 运行项目 (ObjectListing listing = client.listObjects(OSS_BUCKETNAME)?
输出便利结果, 运行成功!!!