资讯详情

静态资源存储之阿里云oss

1.登录阿里云官网登录控制台搜索oss

点击bucket列表

创建一个bucket

填写bucket桶名,选区等

创建bucket成功后,创建公钥和私钥

创建公钥和私钥需要短信验证才能按照提示操作

创建并保存公钥和私钥AccessKey中短信验证查看

在oss点击主页右下角的开发者指南,继续点击文档中心左下角

继续点击sdk示例

点击Java

安装skd复制下面依赖添加的项目pom文件中刷新maven。

复制sdk代码

文件上传到本地的代码如图所示:

修改为阿里云oss文件上传:

代码如下:

   @Override     public Result insetRecord(VisitsRcodeDto visitsRecordDto, MultipartFile multipartFile) {         VisitsRecord visitsRecord = new VisitsRecord();          String url = "";         log.info("员工信息: [{}]", visitsRecordDto.toString());         if (multipartFile != null) {             MultipartFile file = multipartFile;             log.info("文件名: [{}]", file.getOriginalFilename());             // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。             String endpoint = AliConfig.END_POINT;             // 阿里云账号AccessKey拥有所有API访问权限,风险很高。             String endpoint = AliConfig.END_POINT;             // 阿里云账号AccessKey拥有所有API访问权限,风险很高。强烈建议您创建和使用它RAM用户进行API请登录访问或日常运维RAM控制台创建RAM用户。             String accessKeyId = AliConfig.ACCESS_KEY_ID;             String accessKeySecret = AliConfig.ACCESS_KEY_SECRET;             String bucketName = AliConfig.BUCKET_NAME;             String folder = AliConfig.FOLDER;             try {                 // 创建OSSClient实例。                 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);                 // 填写完整的本地文件路径。若未指定本地路径,则默认从示例程序所属项目对应的本地路径中上传文件流。                 InputStream inputStream = file.getInputStream();                 ///获取文件真实姓名                 String originalFilename = file.getOriginalFilename();                 //重命名,防止同一文件被覆盖                 //生成的f4f2e1a3-391a-4d5a-9438-0c9f5d27708c 需要替换成 f4f2e1a3391a4d5a94380c9f5d27708c                 String uuid = UUID.randomUUID().toString().replaceAll("-", "");                 ///新文件名                 originalFilename = uuid   originalFilename;                 //2.根据日期对文件进行分类                 String datePath = new DateTime().toString("yyyy/MM/dd");                 //拼接                 originalFilename = folder   "/"   datePath   "/"   originalFilename;                 // oss上传文件                 ObjectMetadata objectMetadata = new ObjectMetadata();                 objectMetadata.setContentType(getcontentType(originalFilename.substring(originalFilename.lastIndexOf("."))));                 ossClient.putObject(bucketName, originalFilename, inputStream,objectMetadata);                 // 关闭OSSClient                 ossClient.shutdown();                 //拼接url                 url = "https://"   bucketName   "."   endpoint   "/"   originalFilename;              } catch (Exception e) {                 e.printStackTrace();              }         }
创建配置类ApiConfig:
 @Component @PropertySource(value = "classpath:application.yml") ////指定配置文件的位置 public class AliConfig implements InitializingBean {     /**      * 对应公网endpoint地址      */     @Value("${aliyun.oss.file.endpoint}")     private String endpoint;      /**      * AccessKeyId      */     @Value("${aliyun.oss.file.accessKeyId}")     private String accessKeyId;      /**      * AccessKeySecret      */     @Value("${aliyun.oss.file.accessKeySecret}")     private String accessKeySecret;      /**      * Bucket名称      */     @Value("${aliyun.oss.file.bucketName}")     private String bucketName;      /**      * 上传文件夹路径      */     @Value("${aliyun.oss.file.folder}")     private String folder;      public static String END_POINT;     public static String ACCESS_KEY_ID;     public static String ACCESS_KEY_SECRET;     public static String BUCKET_NAME;     public static String FOLDER;      @Override     public void afterPropertiesSet() throws Exception {         END_POINT = endpoint;         ACCESS_KEY_ID = accessKeyId;         ACCESS_KEY_SECRET = accessKeySecret;         BUCKET_NAME = bucketName;         FOLDER = folder;     }

编写yml文件:

aliyun:   oss:     file:       endpoint: oss-cn-shenzhen.aliyuncs.com # 对应公网endpoint地址 例如,深圳就是一个例子       accessKeyId: 你的公钥       accessKeySecret: 你的私钥       bucketName: 你创建的bucket名称       folder: active #保存文件夹路径可以自己命名

编写一个ContentType类,不然点击链接默认是下载不可以在线查看:

     public static String getcontentType(String FilenameExtension) {         if (FilenameExtension.equalsIgnoreCase(".bmp")) {             return "image/bmp";         }        if (FilenameExtension.equalsIgnoreCase(".gif")) {
            return "image/gif";
        }
        if (FilenameExtension.equalsIgnoreCase(".jpeg") ||
                FilenameExtension.equalsIgnoreCase(".jpg") ||
                FilenameExtension.equalsIgnoreCase(".png")) {
            return "image/jpg";
        }
        if (FilenameExtension.equalsIgnoreCase(".html")) {
            return "text/html";
        }

        if (FilenameExtension.equalsIgnoreCase(".txt")) {
            return "text/plain";
        }
        if (FilenameExtension.equalsIgnoreCase(".vsd")) {
            return "application/vnd.visio";
        }
        if (FilenameExtension.equalsIgnoreCase(".pdf")) {
            return "application/pdf";
        }
        if (FilenameExtension.equalsIgnoreCase(".pptx") ||
                FilenameExtension.equalsIgnoreCase(".ppt")) {
            return "application/vnd.ms-powerpoint";
        }
        if (FilenameExtension.equalsIgnoreCase(".docx") ||
                FilenameExtension.equalsIgnoreCase(".doc")) {
            return "application/msword";
        }
        if (FilenameExtension.equalsIgnoreCase(".xml")) {
            return "text/xml";
        }
        return "image/jpg";
    }

 测试结果:按日备份文件如图所示

 按照上述操作就可以引入oss存储对象sdk实现文件上传和在线查看了,赶快动起来吧!!

标签: 荧光法溶解氧传感器oos61

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台