首页 > 其他分享 >上传文件至阿里云

上传文件至阿里云

时间:2023-03-22 22:34:35浏览次数:32  
标签:info 文件 log com oss 阿里 import 上传 String

UploadUtils(对象存储OSS /阿里云的代码 上传网络流)

package com.javasm.common.utils;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import lombok.extern.slf4j.Slf4j;

import javax.servlet.http.Part;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2023/3/22-9:46
 * @Since:jdk1.8
 * @Description:
 */
@Slf4j
public class UploadUtils {

    public static String upload(Part part){
        //阿里云的代码   上传网络流
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-nanjing.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
        String accessKeyId = "自己阿里云取LTAI5tAtKQTB9Fg63NWkQTdQ";
        String accessKeySecret = "自己阿里云取nzHvrDxnBepLaA109KGRfWWS1vm6Oj";
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "wuhanjava17";
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        //获取文件名
        String fileName = part.getSubmittedFileName();

        OSS ossClient = null;
        try {
            // 填写文件流
            InputStream inputStream = part.getInputStream();
            // 创建OSSClient实例。
            ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, inputStream);
            // 设置该属性可以返回response。如果不设置,则返回的response为空。
            putObjectRequest.setProcess("true");
            // 创建PutObject请求。
            PutObjectResult result = ossClient.putObject(putObjectRequest);
            // 如果上传成功,则返回200。
            log.info(result.getResponse().getStatusCode()+"");
        } catch (OSSException oe) {
            log.info("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            log.info("Error Message:" + oe.getErrorMessage());
            log.info("Error Code:" + oe.getErrorCode());
            log.info("Request ID:" + oe.getRequestId());
            log.info("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            log.info("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            log.info("Error Message:" + ce.getMessage());
        } catch (MalformedURLException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }

        return "https://wuhanjava17.oss-cn-nanjing.aliyuncs.com/"+fileName;
    }
}

UploadController

@RestController
public class UploadController {
    @PostMapping("upload")
    public AxiosResult<String> upload(@RequestPart Part part){

        //进行文件上传  UploadUtil
        String upload = UploadUtils.upload(part);

        return AxiosResult.success(upload);
    }
}

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:info,文件,log,com,oss,阿里,import,上传,String
From: https://www.cnblogs.com/sibuxiang-zxb/p/17245739.html

相关文章

  • ctf-文件执行漏洞(绕过)
    考察知识点:文件执行漏洞空格特殊字符、flag字符绕过空格绕过 ${IFS} ${IFS}$1 $IFS$1 <和<> {cat,flag} %20替换 %0a(换行) %0d(回车) %09(tab黑名单(关键字)绕......
  • Linux文件操作
    Linux文件操作Linux的文件Linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件普通文件:也称磁盘文件,并且能够进行随机的数据存储(能够......
  • 【Python】批量提取Fibersim xml文件中的节点网格数据
    程序功能:输入需求:fibersim导出的ply的xml文件,可以很多个也没问题。但名字要有规律,不然没法循环读写。比如我自己用的就是x1.xml、x2.xml、Y1.xml......的文件名定义......
  • python 中实现文件的复制
     001、(base)[root@PC1test3]#ls##测试数据及脚本a.txttest.py(base)[root@PC1test3]#cattest.py##复制程序importosos.popen('......
  • Linux的3个文件时间
    导读文件时间是文件的访问时间、修改时间、和改变时间。atime在Linux的文件系统中被称为访问时间,当文件的内容被访问时,就会更新这个时间,mtime指的是当“内容数据”被修......
  • .NET C#中使用Windows Explorer或者MacOS Finder打开指定文件夹
        只需要使用Process.Start启动外部进程打开指定路径即可。比如:privateasyncvoidOnOpenAppDirectory(objectsender,RoutedEventArgse){......
  • 《渗透测试》WEB攻防-ASP安全&MDB下载植入&IIS短文件名&写权限&解析 2022 Day18
    1  ➢ ASP-数据库-MDB默认下载➢ ASP-数据库-ASP后门植入连接➢ ASP-中间件-IIS短文件名探针-安全漏洞➢ ASP-中间件-IIS文件上传解析-安全漏洞➢ ASP-中......
  • TCP文件上传实现
    packageedu.wtbu;importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;//服务器端publicclassDemo05{publicstaticvoidmain(String[]args......
  • 阿里云微服务引擎 MSE 2023 年 2 月产品动态
    ......
  • js 截取文件后缀名的3种方式
    1.情景展示当我们使用文件上传插件,将文件上传到后台,有时候需要上传的不止一种文件类型,即:图片或着PDF;我们可能需要根据不同文件类型,提供不同的预览地址。如何根据文件......