首页 > 其他分享 >从零开始使用阿里云OSS服务(白嫖)

从零开始使用阿里云OSS服务(白嫖)

时间:2023-02-16 21:22:46浏览次数:48  
标签:从零开始 上传 OSS 阿里 aliyun import com oss

阿里云对象存储服务OSS使用记录

1 新人免费开通OSS服务

  1. 访问 阿里云官网,登录账号(个人新用户账号),首页搜索 对象存储OSS,点击下方的直达。

    image-20230211202246193

  2. 点击立即开通,此时会在一个新网页中完成开通

    image-20230211202356944

  3. 完成开通后,回到原来的网页,点击下方的新人特惠,会跳转到本页的下方。

    image-20230211202633356

    image-20230211202804776

  4. 根据登录的账号是个人新用户,还是企业新用户,可以免费试用三个月。由于我这里是个人新用户,以下操作都为个人新用户的操作。

    image-20230211203001265

  5. 点击上图第一个的立即购买,会跳出详情页面,一般默认即可。

    image-20230211203222309

  6. 点击立即购买,跳转到确认订单页面,点击去支付,完成支付。

    image-20230211203400817

    image-20230211203445826

  7. 如果提示未完成协议签署,则点击签署并下单

    image-20230211203614302

  8. 完成支付后,会出现支付成功的界面

    image-20230211203747721

  9. 点击其中管理控制台,跳转到对象存储的管理台界面,点击资源包管理,可以看到刚刚购买成功的资源包。

    image-20230211203946727

至此,获得了可以白嫖三个月的OSS服务。

2 使用OSS服务

  1. 创建一个新的Bucket,并作如下设置

    image-20230211204615201

    image-20230211205431988

    image-20230211205400701

    注意:此处的存储类型选择为标准存储,因为刚获得的资源包是标准存储包

  2. 手动上传一个文件,测试一下

    image-20230211210018878

    image-20230211210047148

    提示上传成功。

    在文件列表中,找到上传图片的详情,点击

    image-20230211210339674

    出现详情页面,在浏览器中输入该URL,如果能出现下载界面则证明能成功访问。

    image-20230211210405093

  3. 参考文档,根据参考文档在Java应用中使用OSS

3 在Java中使用OSS

  1. 安装依赖

    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.15.1</version>
    </dependency>
    
  2. 根据文档,写图片上传的Controller方法,通过swagger测试

    注意:把代码中的 * 修改成自己账号对应的值

    package com.sun.controller;
    
    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.GetObjectRequest;
    import com.aliyun.oss.model.PutObjectRequest;
    import com.aliyun.oss.model.PutObjectResult;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    
    @RestController
    @RequestMapping("/oss")
    @Api(value = "test oss", tags = "test oss")
    public class OssTest {
    
        @PostMapping("/upload")
        @ApiOperation("upload file test")
        public void upload(MultipartFile file) {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
            String endpoint = "***";
            // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
            String accessKeyId = "***";
            String accessKeySecret = "***";
            // 填写Bucket名称,例如examplebucket。
            String bucketName = "***";
            // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
            String objectName = "13213213exampleobject.jpg"; // 图片上传之后的名字
            // 填写本地文件的完整路径,例如D:\\localpath\\example-resize.jpg。如果指定的本地文件存在会覆盖,不存在则新建。
            String localPath = "C:\\Users\\admin\\Desktop\\Services\\weizhi1.jpg"; // 要上传的本地文件的地址
    
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    
            try {
                InputStream inputStream = new FileInputStream(localPath); // 图片输入流
                // 创建PutObjectRequest对象。
                PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
                // 设置该属性可以返回response。如果不设置,则返回的response为空。
                putObjectRequest.setProcess("true");
                // 创建PutObject请求。
                PutObjectResult result = ossClient.putObject(putObjectRequest);
                // 如果上传成功,则返回200。
                System.out.println(result.getResponse().getStatusCode());
            } catch (OSSException oe) {
                System.out.println("Caught an OSSException, which means your request made it to OSS, "
                        + "but was rejected with an error response for some reason.");
                System.out.println("Error Message:" + oe.getErrorMessage());
                System.out.println("Error Code:" + oe.getErrorCode());
                System.out.println("Request ID:" + oe.getRequestId());
                System.out.println("Host ID:" + oe.getHostId());
            } catch (ClientException ce) {
                System.out.println("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.");
                System.out.println("Error Message:" + ce.getMessage());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } finally {
                if (ossClient != null) {
                    ossClient.shutdown();
                }
            }
        }
    }
    
    
  3. 启动项目,在swagger中测试

    image-20230212092001864

控制台输出200,表示上传图片操作成功。

image-20230212092046579

登录管理台查看,文件确实上传成功了。

4 总结

  1. 在Java程序中使用OSS服务需要提供 endpoint、accessKeyId、accessKeySecret、bucketName 四个量。前三个用于创建ossclient对象,OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);,最后一个用于确定上传的图片放在哪个bucketname下边。

  2. 需要先构造一个PutObjectRequest或者GetObjectRequest,然后通过ossclient调用putObject(put请求)/getObject(get请求)。

  3. // 创建 put请求
    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
    // 调用这个put请求,返回请求的result结果
    PutObjectResult result = ossClient.putObject(putObjectRequest);
    

标签:从零开始,上传,OSS,阿里,aliyun,import,com,oss
From: https://www.cnblogs.com/Sun-yuan/p/17128350.html

相关文章

  • 阿里云短信接口使用
    阿里云短信接口使用接入一.nuget下载二.复制接口1.这里要注意的是AccessKeyID和AccessKeySecret是需要在阿里云生成的,路径:头像=>AccessKey管理=>创建*......
  • 阿里云 cloud linux 2 搭建LNMP环境
    2023年2月16日15:38:38官方说明: https://www.alibabacloud.com/help/zh/elastic-compute-service/latest/manually-deploy-an-lnmp-environment-on-an-ecs-instance-tha......
  • react从零开始创建使用01
    一、react使用场景:可以开发web应用可以开发移动端原生应用(react-native)可以开发VR虚拟现实应用(react360)二、react安装使用:命令安装npminstallreactrea......
  • 阿里一面:你做过哪些代码优化?来一个人人可以用的极品案例
    前言在尼恩读者50+交流群中,尼恩经常指导小伙伴改简历。改简历所涉及的一个要点是:在XXX项目中,完成了XXX模块的代码优化另外,在面试的过程中,面试官也常常喜欢针对提......
  • 77智联招聘,boss岗位信息
    因为本人在投简历,就随缘写了一份脚本,(智联)可获取链接自动投递(playwright或者selenium)仅供学习使用,切勿违法犯罪效果图:boss智联招聘Boss1.反爬真的有一手,cookie失......
  • CSDN阿里妈妈技术
    阿里妈妈技术https://blog.csdn.net/alimama_Tech?type=blog深度点击率预估模型的One-Epoch过拟合现象剖析https://github.com/Z-Y-Zhang/one_epoch_phenomenon......
  • 阿里云回放监听当前视频播放完,开始播放下一个视频
    最近要写一个自动播放下一集的功能:前提是:当前页面是一个列表,播放完一个,在播放下一个varplayer=newAliplayer({ id:'MPSpla......
  • 阿里云扩容硬盘
    如果您的分区为GPT格式,必须执行此步骤;如果您的分区为MBR格式,请跳过此步骤yuminstallgdisk-y安装growpart工具。AlibabaCloudLinux2/3版本、CentOS7及以上版本......
  • 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python
    使用过NAS(NetworkAttachedStorage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点......
  • 阿里云视频播放
    阿里云视频播放​​一、概述​​​​二、两种播放方式测试​​​​2.1第一种:播放地址播放​​​​2.2第二种:播放凭证播放(推荐)​​​​2.2.1获取视频播放凭证​​​​2.......