java通过STS上传文件到OSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 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/" ; // 确保你的表单设置了enctype="multipart/form-data" // 假设上传的文件字段名为"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()); } } } |