• 使用阿里云存储图片


    使用阿里云存储图片

    使用阿里云存储图片_一只胡说八道的猴子的博客-CSDN博客_阿里云存储图片

    1.准备
    为什么使用云存储的方式


    什么是OSS对象存储服务
    阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。
    OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
    您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)、冷归档存储(Cold Archive)作为不经常访问数据的存储方式。

    和传统的单体应用不同,这里我们选择将数据上传到分布式文件服务器上。
    这里我们选择将图片放置到阿里云上,使用对象存储。
    阿里云上使使用对象存储方式:

    创建Bucket
    创建Bucket(作为项目)

    上传文件:上传成功后,取得图片的URL

    这种方式是手动上传图片,实际上我们可以在程序中设置自动上传图片到阿里云对象存储。

    2…上传模型:
    上传的账号信息存储在应用服务器
    上传先找应用服务器要一个policy上传策略,生成防伪签名


    查看阿里云关于文件上传的帮助:https://help.aliyun.com/document_detail/32009.html?spm=a2c4g.11186623.6.768.549d59aaWuZMGJ

    3.简单集成阿里云文件上传服务
    1)导入依赖
    在Maven项目中加入依赖项(推荐方式)
    在 Maven 工程中使用 OSS Java SDK,只需在 pom.xml 中加入相应依赖即可。以 3.8.0 版本为例,在 内加入如下内容:

    <dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.8.0</version>
    </dependency>

    1
    2
    3
    4
    5
    6
    2)上传文件流
    以下代码用于上传文件流:

    // Endpoint以杭州为例,其它Region请按实际情况填写。
    String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
    // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
    String accessKeyId = "<yourAccessKeyId>";
    String accessKeySecret = "<yourAccessKeySecret>";

    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

    // 上传文件流。
    InputStream inputStream = new FileInputStream("<yourlocalFile>");
    ossClient.putObject("<yourBucketName>", "<yourObjectName>", inputStream);

    // 关闭OSSClient。
    ossClient.shutdown();
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ossClient.shutdown();

    accessKeyId和accessKeySecret需要创建一个RAM账号

    创建用户完毕后,会得到一个“AccessKey ID”和“AccessKeySecret”,然后复制这两个值到代码的“AccessKey ID”和“AccessKeySecret”。
    另外还需要添加访问控制权限:


    @Test
    public void testUpload() throws FileNotFoundException {
    // Endpoint以杭州为例,其它Region请按实际情况填写。
    String endpoint = "oss-cn-shanghai.aliyuncs.com";
    // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
    String accessKeyId = "LTAI4G4W1RA4JXz2QhoDwHhi";
    String accessKeySecret = "R99lmDOJumF2x43ZBKT259Qpe70Oxw";

    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

    // 上传文件流。
    InputStream inputStream = new FileInputStream("C:\\Users\\Administrator\\Pictures\\timg.jpg");
    ossClient.putObject("gulimall-images", "time.jpg", inputStream);

    // 关闭OSSClient。
    ossClient.shutdown();
    System.out.println("上传成功.");
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    4.更为简单的使用方式,是使用SpringCloud Alibaba


    使用步骤
    1.添加依赖

    <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
    <version>2.2.0.RELEASE</version>
    </dependency>
    1
    2
    3
    4
    5
    (2)创建“AccessKey ID”和“AccessKeySecret”
    (3)配置key,secret和endpoint相关信息

    access-key: LTAI4G4W1RA4JXz2QhoDwHhi
    secret-key: R99lmDOJumF2x43ZBKT259Qpe70Oxw
    oss:
    endpoint: oss-cn-shanghai.aliyuncs.com
    1
    2
    3
    4
    (4)注入OSSClient并进行文件上传下载等操作

    但是这样来做还是比较麻烦,如果以后的上传任务都交给gulimall-product来完成,显然耦合度高。最好单独新建一个Module来完成文件上传任务。
    ————————————————
    版权声明:本文为CSDN博主「一只胡说八道的猴子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/pjh88/article/details/119852528

  • 相关阅读:
    Web.config Transformation Syntax for Web Application Project Deployment
    xcode 8.1 (8B62)真机调试配置
    主机与虚拟机互ping
    mac系统下安装mysql步骤
    iphone设备尺寸规格
    linux环境下oracle静默安装
    实现静默安装APK的方法
    mac系统下如何删除银行安全插件
    mac系统下设置eclipse的补全快捷键方法
    给Xcode增加复制行、删除行快捷键的方法
  • 原文地址:https://www.cnblogs.com/zkwarrior/p/16262009.html
Copyright © 2020-2023  润新知