Java SpringBoot 教程:使用阿里云OSS实现通用文件上传接口
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.common.utils.StringUtils;
import java.io.InputStream;
import java.util.Date;
import java.util.UUID;
@RestController
public class FileUploadController {
private static String endpoint = "您的阿里云OSS端点";
private static String accessKeyId = "您的阿里云OSSAccessKeyId";
private static String accessKeySecret = "您的阿里云OSSAccessKeySecret";
private static String bucketName = "您的阿里云OSS存储桶名";
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "文件为空";
}
String fileName = file.getOriginalFilename();
String fileType = fileName.substring(fileName.lastIndexOf("."));
String uploadFileName = UUID.randomUUID().toString() + fileType;
// 创建OSSClient实例。
OSS ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try (InputStream inputStream = file.getInputStream()) {
// 上传文件。
ossClient.putObject(bucketName, uploadFileName, inputStream);
// 生成URL。
String url = "https://" + bucketName + "." + endpoint + "/" + uploadFileName;
return url;
} catch (Exception e) {
e.printStackTrace();
return "上传失败";
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
这段代码实现了一个简单的文件上传接口,它使用了阿里云OSS服务来存储文件。用户可以通过HTTP POST请求上传文件到指定的存储桶中,并获取到文件的URL。在实际应用中,你需要替换endpoint、accessKeyId、accessKeySecret和bucketName为你自己的阿里云OSS配置信息。
评论已关闭