图片上传怎么搞?!阿里云OSS对象存储教你快速实现!

这篇具有很好参考价值的文章主要介绍了图片上传怎么搞?!阿里云OSS对象存储教你快速实现!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 需求背景

小白: 辉哥,我想在项目中实现图片上传,不知道有没有好用的第三方文件上传技术呢?

辉哥:那多了去了,阿里、腾讯、百度、七牛云等都有文件上传技术,你从中随便挑一个,辉哥这就给你安排。

小白:阿里也有文件上传?!!!要不辉哥就给我安排阿里的实现方案吧。

辉哥:小子,你眼光不错哦。我这正好就有阿里OSS的图片处理文档,你拿去学习吧。

二. OSS简介

1. 快速了解

OSS(Object Storage Service)对象存储服务是一种海量、安全、低成本、高可靠的云存储服务,可以提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。有多种存储类型可供选择,全面优化存储成本,非常适合存储非结构化的数据,例如视频、图形、日志、文本文件以及各种App应用、多终端同步软件、网盘下载站的文件等。

2. 存储类型

OSS支持的具体存储类型较多,我们可以参考如下链接:https://oss.console.aliyun. com/overview

2.1 标准存储(Standard)

该方案提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问,适用于各种社交、分享类的图片、音视频应用、大型网站、大数据分析等业务场景。OSS还提供了标准存储-本地冗余(LRS)和标准存储-同城冗余(ZRS)两种数据冗余存储方式。

  • 标准存储-本地冗余(LRS):采用数据冗余存储机制,将每个对象的不同冗余存储在同一个可用区内多个设施的多个设备上,确保硬件失效时的数据持久性和可用性。

  • 标准存储-同城冗余(ZRS):采用多可用区(AZ)机制,将用户的数据分散存放在同一地域(Region)的3个可用区。当某个可用区不可用时,仍然能够保障数据的正常访问。

2.2 低频访问(Infrequent Access)

该方案提供了高持久性、较低存储成本的对象存储服务,有最低存储时间(30天)和最小计量单位(64 KB)要求。支持数据实时访问,访问数据时会产生数据取回费用,适用于较低访问频率(平均每月访问频率1到2次)的业务场景。提供低频访问-本地冗余(LRS)和低频访问-同城冗余(ZRS)两种数据冗余存储方式。

  • 低频访问-本地冗余(LRS):采用数据冗余存储机制,将每个对象的不同冗余存储在同一个可用区内多个设施的多个设备上,确保硬件失效时的数据持久性和可用性。

  • 低频访问-同城冗余(ZRS):采用多可用区(AZ)机制,将用户的数据分散存放在同一地域(Region)的3个可用区。当某个可用区不可用时,仍然能够保障数据的正常访问。

2.3 归档存储(Archive)

该方案提供了高持久性、极低存储成本的对象存储服务。有最低存储时间(60天)和最小计量单位(64 KB)要求。数据需解冻(约1分钟)后访问,解冻会产生数据取回费用。适用于数据长期保存的业务场景,例如档案数据、医疗影像、科学资料、影视素材等。

2.4 冷归档存储(Cold Archive)

该方案提供了高持久性的对象存储服务,存储费用在四种存储类型中最低。有最低存储时间(180天)和最小计量单位(64 KB)要求。数据需解冻后访问,解冻时间根据数据大小和选择的解冻模式决定,解冻会产生数据取回费用。

适用于需要超长时间存放的极冷数据,例如因合规要求需要长期留存的数据、大数据及人工智能领域长期积累的原始数据、影视行业长期留存的媒体资源、在线教育行业的归档视频等业务场景。

给大家介绍了以上这些存储类型之后,接下来辉哥就带各位看看OSS到底该如何使用,本案例采用标准存储进行实现。

. 快速使用

1. 开通服务

在使用OSS之前,我们要先购买OSS服务,毕竟这些第三方公司都不是做慈善的,怎么可能让我们免费使用这些吊炸天的技术呢?我们就掏点money,为让马爸爸成为首富贡献自己的绵薄之力吧。

在学习阶段,我们购买OSS时,可以选择按量计费的方案,当然也可以直接买一个半年包或者一年包!这些在学习时进行测试就已经足够了。我们可以看到,40GB存储包也就9块钱,便宜啊,买买买!

阿里云购买地址也给大家准备好啦:https://common-buy.aliyun.com/spm=5176.7933691.1309819..68b22a66FQKm7f&commodityCode=ossbag&request

ossclient.generatepresignedurl,分布式,阿里云,云计算

2. 创建存储空间

购买了OSS服务之后,接下来需要创建自己的存储空间,创建过程如下图所示:

ossclient.generatepresignedurl,分布式,阿里云,云计算

3. 上传测试

接下来我们可以先通过手动方式测试一下上传功能是否好使。

ossclient.generatepresignedurl,分布式,阿里云,云计算

代码实现

当然,我们在开发时不可能采用手动上传的方式实现文件上传,肯定是要利用代码进行实现的,接下来辉哥就给大家说说用代码该怎么实现文件上传。

1. 添加依赖

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

2. 创建AccessKey

OSS为了提高安全性,要求每个用户都必须创建AccessKey,作为访问令牌,所以请按下图所示创建获取自己的AccessKey。

ossclient.generatepresignedurl,分布式,阿里云,云计算

AccessKey简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。

ossclient.generatepresignedurl,分布式,阿里云,云计算

大家要保存好自己的AK,不要随意泄露给别人哦。

3. 定义3个常量值

我们可以随便定义一个接口类,在其中定义如下3个常量值,用于存储自己的AK等信息。

public static final String endpoint = “所选服务器的地址 ,可以上传一张图片看看”;
public static final String accessKeyId = "xxxxx"; 
public static final String accessKeySecret = "xxxxx";

4. 文件上传下载文档

对于文件上传下载的具体实现过程,我们可以参考如下官方文档。

https://help.aliyun.com/document_detail/84781.html

5. 上传功能

为了方便实现图片上传,辉哥定义了一个上传图片的方法,该方法可以定义在工具类中。

/**
     * @param objectName   有没有二级目录 如果有   目录1/目录2/文件名
     * @param content  byte[ 图片的字节数组
     * @return
     * @throws Exception
     */
    public static String uploadImage(
                                     String objectName,
                                     byte[] content)  throws Exception {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 创建上传文件的元信息,可以通过文件元信息设置HTTP header(设置了才能通过返回的链接直接访问)。
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentType("image/jpg");
        // 文件上传
        ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content), objectMetadata);
        // 设置URL过期时间为1小时。
        Date expiration = new Date(System.currentTimeMillis() + 60*60 * 1000);
        //返回url地址
        String url = ossClient.generatePresignedUrl(bucketName, objectName, expiration).toString();
        //关闭OSSClient。
        ossClient.shutdown();
        return url;
    }

6. 下载功能

为了方便实现图片下载,辉哥又定义了一个下载图片的方法,该方法也可以定义在工具类中。

/**
     * @param objectName
     * @param localFile
     * @throws Exception
     */
    public static void downFile(
                                String objectName,
                                String localFile) throws Exception {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,         accessKeySecret);

        // 下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。
        ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(localFile));

        // 关闭OSSClient。
        ossClient.shutdown();
    }

7. 删除功能

最后,我们再搞一个文件删除功能,代码如下:

    /** 
     * @param objectName
     */
    public static void deleteFile(
                                  String objectName) {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 删除文件。如需删除文件夹,请将ObjectName设置为对应的文件夹名称。如果文件夹非空,则需要将文件夹下的所有object删除后才能删除该文件夹。
        ossClient.deleteObject(bucketName, objectName);

        // 关闭OSSClient。
        ossClient.shutdown();
    }

五. 结语

我们在开发中会接触到很多的第三方文件服务器,在学习时首先要下载对应的sdk,并查看官方文档,根据官方文档的要求一步步进行实现即可。其实越是第三方的技术,使用起来越简单,因为如果第三方的功能使用起来太复杂,就会减少大家的使用兴趣,从而阻碍了该产品的推广。

现在你知道阿里OSS怎么使用了吗?如果你还有什么问题,可以在评论区给我留言或私信哦。

 *威哥Java学习交流Q群:691533824
加群备注:CSDN推荐
文章来源地址https://www.toymoban.com/news/detail-804133.html

到了这里,关于图片上传怎么搞?!阿里云OSS对象存储教你快速实现!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云对象存储OSS怎么收费?

    阿里云对象存储OSS收费有两种计费模式,即包年包月和按量付费,包年包月是指购买存储包、流量包来抵扣OSS产生的存储费核流量费,OSS标准(LRS)存储包100GB优惠价33元、500GB存储包半年162元、OSS存储包40GB一年9元,OSS流量包100G 49元/月,阿里云百科来详细说下阿里云对象存储

    2024年01月19日
    浏览(59)
  • JAVA通过阿里云OSS存储实现图片上传功能

    首先我们需要在阿里云注册账号,实名认证后开通OSS功能,点击进入OSS功能的管理平台 进入概览页面后,点击Bucket列表,创建一个Bucket(相当于一个存放文件的文件夹)  关键是要获得下面几个关键的信息,只有拥有这些信息才能连接上这个Bucket进行操作: 添加对应依赖  

    2024年02月05日
    浏览(45)
  • 阿里云对象存储oss-文件上传过程详解(两种方式)

    问题:需要配置系统变量才能够使用 以win11为例 (1)打开设置 (2)选择----系统信息 (3)选择----高级系统设置 (4)选择----环境变量 (5)选择----系统变量这栏-----新建 (6)在“变量名”输入框中输入 OSS_ACCESS_KEY_ID,在“变量值”输入框中输入你的Access Key ID。再次点击“新建”按钮,输入

    2024年02月10日
    浏览(46)
  • 阿里云OSS存储图片在上传的时候设置过期时间

    第一种方法:在上传文件时设置过期时间 在使用 putObject 方法上传文件时,可以通过设置 x-oss-expires 和 x-oss-delete-after 头部来设定文件的过期时间。 以下是示例代码: 上述代码中,我们在 headers 中添加了 x-oss-expires 和 x-oss-delete-after 头部来设定文件的过期时间,其中 x-oss-ex

    2024年02月07日
    浏览(55)
  • Unity 上传文件到阿里云 对象存储OSS服务器

    首先登录阿里云 免费试用–对象存储OSS --点击立即试用,可以有三个月的免费试用 创建Buket 新建AccessKey ,新建完成后,会有一个CSV文件,下载下来,里面有Key ,代码中需要用到 下载SDK 双击打开 sln文件,使用VS打开,右键项目–属性,修改程序集名字,然后点击生成–生成解

    2024年02月13日
    浏览(74)
  • Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】

    前言 以下只提供一种思路,对新手可能不太友好。 这里将前端Vue上传的图片直接存储到服务器上, Alibaba Cloud OSS : 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储

    2024年02月06日
    浏览(74)
  • 【业务功能篇77】微服务-OSS对象存储-上传下载图片

    3. 图片管理 文件存储的几种方式 单体架构可以直接把图片存储在服务器中 但是在分布式环境下面直接存储在WEB服务器中的方式就不可取了,这时我们需要搭建独立的文件存储服务器。 3.1 开通阿里云服务 针对本系统中的相关的文件,图片,文本等统一的交给云服务器管理。

    2024年02月11日
    浏览(52)
  • uniapp 上传静态资源-- 微信小程序跟QQ小程序上传静态资源到阿里的对象存储 OSS

    这两天有个需求,要微信小程序跟QQ小程序通过阿里的OSS储存,存放静态资源,遇到了挺多问题,记录一下~~~ 文档:此处 其实这个是被误导了,也怪自己没有仔细看文档,不该有这一步,但是做了就记录一下,正好多了解nodejs环境与浏览器环境 API的差别。 服务器直传里面的

    2024年02月09日
    浏览(48)
  • 四、阿里云对象存储上传图片

    2024年02月13日
    浏览(43)
  • Linux服务器上传文件到阿里云oss对象存储的两种方法ossutil、curl

    ossutil支持在Windows、Linux、macOS等系统中运行,您可以根据实际环境下载和安装合适的版本。 安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。 yum -y install unzip Linux系统一键安装 sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo b

    2024年02月13日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包