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