From eba7ff322d676102b70058b26cfcffefdc22b53e Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期二, 30 四月 2024 16:28:42 +0800
Subject: [PATCH] 更新线上bug

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java |  106 +++++++++++++++++++++++++++--------------------------
 1 files changed, 54 insertions(+), 52 deletions(-)

diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java
index 45d4e38..0a0ade2 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FileController.java
@@ -26,59 +26,61 @@
     private static final String accessKeyId = "LTAI5tQZzqsZYX5gw8yRNchQ";
     private static final String accessKeySecret = "5yJVdXwRzwPZwKKXp07lRAc7tkTxQp";
     private static final String bucketName = "bizuphk";
-    @PostMapping("/base/files/upload")
-    @ApiOperation(value = "文件上传", tags = {"文件上传"})
-    public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
-        // 获取原始文件名
-        String originalFilename = file.getOriginalFilename();
-        // 提取文件后缀
-        if (originalFilename != null && originalFilename.contains(".")) {
-            System.err.println(originalFilename.substring(originalFilename.lastIndexOf(".")));
-        }
-
-        // 创建 OSSClient 实例
-            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
-        long l = System.currentTimeMillis();
-        // 创建 PutObjectRequest 对象
-            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, String.valueOf(l)+"."+originalFilename.substring(originalFilename.lastIndexOf(".") + 1), file.getInputStream());
-            ObjectMetadata metadata = new ObjectMetadata();
-            // 取消文件缓存,文件每次都会从OSS服务器获取
-            metadata.setHeader("Cache-Control", "no-cache");
-            metadata.setHeader("Expires", "0");
-            // 上传文件
-            PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
-            // 关闭 OSSClient 实例
-            ossClient.shutdown();
-            String fileUrl = "https://" + bucketName + "." + endpoint + "/" + String.valueOf(l)+"."+originalFilename.substring(originalFilename.lastIndexOf(".")+ 1);
-            return fileUrl;
-    }
-
-//    @ApiOperation(value = "服务端上传", notes = "服务端上传")
-//    @PostMapping(value = "upload")
-//    public String fileUpload(@RequestParam(value = "file") MultipartFile file) throws IOException {
-//        InputStream inputStream = file.getInputStream();
-//        String filename = System.currentTimeMillis() + file.getOriginalFilename();
-//        // Endpoint以杭州为例,其它Region请按实际情况填写。
-//        final String endpoint = "oss-cn-hongkong.aliyuncs.com";
-//        // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
-//        final String accessKeyId = "LTAI5tQZzqsZYX5gw8yRNchQ";
-//        final String accessKeySecret = "5yJVdXwRzwPZwKKXp07lRAc7tkTxQp";
-//        final String bucketName = "bizuphk";
-//        // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
-//        String objectName = AliOss.dir + filename;
-//        // 创建OSSClient实例。
-//        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
-//        // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
-//        // InputStream inputStream = new FileInputStream("D:\\localpath\\examplefile.txt");
-//        // 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。Object完整路径中不能包含Bucket名称。
-//        PutObjectResult putObjectResult = ossClient.putObject(bucketName, objectName, inputStream);
-//        OSSObject ossObject = ossClient.getObject(bucketName, objectName);
-//        String uri = ossObject.getResponse().getUri();
-//        // 关闭OSSClient。
-//        ossClient.shutdown();
-//        uri = uri.replace("http://nn-bucket.oss-cn-shanghai.aliyuncs.com",FILE_CDN);
-//        return uri;
+//    @PostMapping("/base/files/upload")
+//    @ApiOperation(value = "文件上传", tags = {"文件上传"})
+//    public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
+//        // 获取原始文件名
+//        String originalFilename = file.getOriginalFilename();
+//        // 提取文件后缀
+//        if (originalFilename != null && originalFilename.contains(".")) {
+//            System.err.println(originalFilename.substring(originalFilename.lastIndexOf(".")));
+//        }
+//        // 创建 OSSClient 实例
+//            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
+//        long l = System.currentTimeMillis();
+//        // 创建 PutObjectRequest 对象
+//            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, String.valueOf(l)+"."+originalFilename.substring(originalFilename.lastIndexOf(".") + 1), file.getInputStream());
+//            ObjectMetadata metadata = new ObjectMetadata();
+//            // 取消文件缓存,文件每次都会从OSS服务器获取
+//            metadata.setHeader("Cache-Control", "no-cache");
+//            metadata.setHeader("Expires", "0");
+//            // 上传文件
+//            PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
+//            // 关闭 OSSClient 实例
+//            ossClient.shutdown();
+//            String fileUrl = "https://" + bucketName + "." +
+//                    endpoint + "/"
+//                    + String.valueOf(l)
+//                    +"."+originalFilename.substring(originalFilename.lastIndexOf(".")+ 1);
+//            return fileUrl;
 //    }
+    // 两种都试过了。。。。一样的效果 能上传几次 然后就不行了
+
+    @ApiOperation(value = "文件上传", tags = {"文件上传"})
+    @PostMapping(value = "/base/files/upload")
+    public String fileUpload(@RequestParam(value = "file") MultipartFile file) throws IOException {
+        InputStream inputStream = file.getInputStream();
+        String filename = System.currentTimeMillis() + file.getOriginalFilename();
+        String endpoint = "oss-cn-hongkong.aliyuncs.com";
+        String accessKeyId = "LTAI5tQZzqsZYX5gw8yRNchQ";
+        String accessKeySecret = "5yJVdXwRzwPZwKKXp07lRAc7tkTxQp";
+        String bucketName = "bizuphk";
+        // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
+        //这个问题需要处理一下
+        // 创建OSSClient实例。
+        //这个方案是对的。
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
+        // InputStream inputStream = new FileInputStream("D:\\localpath\\examplefile.txt");
+        // 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。Object完整路径中不能包含Bucket名称。
+        PutObjectResult putObjectResult = ossClient.putObject(bucketName, filename, inputStream);
+        OSSObject ossObject = ossClient.getObject(bucketName, filename);
+        String uri = ossObject.getResponse().getUri();
+        // 关闭OSSClient。
+        ossClient.shutdown();
+//        uri = uri.replace("http://nn-bucket.oss-cn-shanghai.aliyuncs.com",FILE_CDN);
+        return uri;
+    }
 //    @GetMapping("/base/files/download/{fileName}")
 //    @ApiOperation(value = "文件下载", tags = {"文件下载"})
 //    public void downloadFile(@PathVariable("fileName") String fileName, HttpServletResponse response) {

--
Gitblit v1.7.1