java通過(guò)STS上傳文件到OSS
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
@WebServlet(name = "OssUpload", value = "/OssUpload")
@MultipartConfig
public class OssUploadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "STS.NU9MoqZR51pVsjdjPp1f9QpPt";
String accessKeySecret = "6gnvTyvrsVmxwEZCWL2JTcmRx2QTvorGEoBGZzXdvzKC";
String bucketName = "zhuangzi-bucket";
String securityToken = "CAISywJ1q6Ft5B2yfSjIr5aMBtXFt40UhrK9cUzVjlAlPekVvrX7ljz2IHhMfXVtBegYs/s2nGBZ6/gelrh9SptIfkHfdsp36KlP9QSob9J5fB13L+ZW5qe+EE2/VjTZvqaLEcibIfrZfvCyESOm8gZ43br9cxi7QlWhKufnoJV7b9MRLGLaBHg8c7UwHAZ5r9IAPnb8LOukNgWQ4lDdF011oAFx+wgdgOadupTDtkqA1geikbJN+N6ue8OeApMybMslYbCcx/drc6fN6ilU5iVR+b1+5K4+om+f543AXwEPvkrfa7qFr4MzNmljb609ALVeq/zxifBjpvxyEhBGb7WoVgs8cVM8JOjIqKOscIsi5s6481TGFV55c8FdR3jkMj5V8L8hTnduUfAPRHG+p5JCZM90ZAFpFt5kTKnBL4rB5MUctfzRp1BBQbPUTzDnGoABiPcBGE8ul1pCpBCxVQK3DqCyumZ6ObzA2sR/tZ4bg3cB4E1N0WBVroa/ALOmpL17aNRJ8rI+WZqn8c4OA4gG+KvWDZRep0yGBgrBCWZbdxDxJn4y6I5c9X5SVfUSM83BqD8DrV+FBSb08ktCw5voBd7p5vS7LePJFHlSIr/shikgAA==";
String fileDir = "upload/";
// 確保你的表單設(shè)置了enctype="multipart/form-data"
// 假設(shè)上傳的文件字段名為"file"
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
// 使用SDK上傳文件
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret,securityToken);
try {
// 生成新的文件名,避免重名沖突
String newFileName = UUID.randomUUID().toString() + "-" + fileName;
InputStream inputStream = filePart.getInputStream();
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, "images/2024/" + newFileName, inputStream);
// ossClient.putObject(bucketName, "images/2024/" + newFileName, inputStream);
ossClient.putObject(putObjectRequest);
ossClient.shutdown();
// 返回文件的URL或其他處理
String fileUrl = "https://" + bucketName + "." + endpoint + "/" + newFileName;
response.getWriter().write("File uploaded successfully: " + fileUrl);
} catch (Exception e) {
response.getWriter().write("Error: " + e.getMessage());
}
}
}