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

1 新人免费开通OSS服务

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

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

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

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

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

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

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

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

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

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

2 使用OSS服务

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

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

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

    提示上传成功。

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

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

  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中测试

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

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

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服务(白嫖)的更多相关文章

  1. Python使用阿里云OSS服务

    Python使用阿里云OSS服务 前言: 在远程搭建了一个平台,通过改远程平台进行数据的采集,需要将数据内容传送至本地进行处理:为了实现该功能,考虑了阿里云的OSS对象储存的服务. 40G包月只需1元 ...

  2. angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

    2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...

  3. ECS上nginx搭建反向代理通过内网访问阿里云OSS服务

    对于付不起钱的小伙计,为了给公司省钱,想尽一切招数.今天就来分享一个使用阿里云OSS存储搭配CDN使用的网站服务器部署方法. 简介 阿里云OSS 阿里云提供的一种文件存储方案,和我们以前接触的百度云B ...

  4. 物联网架构成长之路(18)-接阿里云OSS服务

    1.申请/购买OSS服务 在阿里云上申请/购买OSS服务, 然后在会得AccessKeyID,AccessKeySecret,bucketName 这三个东西 2.增删改查 在pom.xml文件上增加 ...

  5. 阿里云OSS服务开通STS安全令牌

    搭建直传服务需要完成以下准备工作: 开通OSS,并且创建Bucket. 开通STS服务. 登录 OSS管理控制台. 在OSS概览页中找到基础配置区域,单击 安全令牌,如下图所示: 进入到 安全令牌快捷 ...

  6. 阿里云OSS 服务端签名后直传之分片上传(结合element-ui的upload组件)

    分片上传(结合element-ui的upload组件实现自定义上传) async uploadFree(content){ let data = await this.getOssToken(); / ...

  7. 阿里云oss服务通用类

    在webconfig中配置信息 <?xml version="1.0" encoding="utf-8"?><configuration> ...

  8. 构建基于阿里云OSS文件上传服务

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...

  9. thinkphp使用阿里云OSS最新SDK,文件部署

    这文章是建立在你已经注册号阿里云的OSS,和创建好Bucket前提下: 其实阿里云的帮助与文档写的很详细,这里只说一下源码方式 1.phpsdk下载地址(摘自阿里云OSS的帮助与文档)(也有我自己下载 ...

  10. ThinkPHP5使用阿里云OSS图片上传

    1.下载OSS文件放在网站根目录下(OSS文件下载地址:https://gitee.com/jth1234/oss_files.git) 2.在入口文件中加载OSS 3.config文件配置oss信息 ...

随机推荐

  1. 【SQL真题】SQL2:平均播放进度大于60%的视频类别

    题目:https://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef?tpId=268&tqId=2285039& ...

  2. win10中jupyter notebook设置conda虚拟环境全流程及问题汇总

    正常安装流程 1.安装anaconda 必备条件 2.安装jupyter notebook 一般anaconda自带安装 如没有,则在终端安装 conda install jupyter notebo ...

  3. Linux通过脚本实现多台主机统一部署

    该脚本分成三部分,一部分是获取信息的脚本:getInfo.sh 一个是main脚本:main.sh.一个是ssh连接主机脚本:sshing.sh main.sh #是否检查主机是否存活host_che ...

  4. 当 xxl-job 遇上 docker → 它晕了,但我不能乱!

    开心一刻 某次住酒店,晚上十点多叫了个外卖 过了一阵儿,外卖到了 因为酒店电梯要刷卡,所以我下楼去接 到了电梯口看到个模样不错的妹纸 我:是你么? 妹纸愣了下:嗯! 于是拉上进电梯回房间,正准备开始呢 ...

  5. 从源码层面深度剖析Spring循环依赖

    作者:郭艳红 以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1.Spring 如何创建 ...

  6. 一阶段目标检测网络-RetinaNet 详解

    摘要 1,引言 2,相关工作 3,网络架构 3.1,Backbone 3.2,Neck 3.3,Head 4,Focal Loss 4.1,Cross Entropy 4.2,Balanced Cro ...

  7. APICloud 入门教程窗口篇

    什么是窗口,窗口可以理解为一屏幕内容的一个基本载体,里面可以放导航,图片,视频,文字等组成一屏幕内容. 不同的窗口组成一个APP, 例如购物APP有[首页],[购物车],[我的]等不同的窗口.不同的窗 ...

  8. Faster RCNN论文阅读

    引言 当前最先进的目标检测模型是由区域提案方法和基于区域的卷积神经网络引领的,由于共享计算,卷积网络花费的时间已经大大减小了,所以当前检测系统的瓶颈就是如何减小区域提案生成部分的花费时间.当前流行的区 ...

  9. Codeforces Round #842 (Div. 2) A-D

    比赛链接 A 题意 给一个数 \(k\) 找到最大的 \(x\) ,满足 \(1 \leq x < k\) 且 \(x!+(x-1)!\) 是 \(k\) 的倍数. 题解 知识点:数学. 猜测 ...

  10. gRPC入门与实操(.NET篇)

    为什么选择 gRPC 历史 长久以来,我们在前后端交互时使用WebApi + JSON方式,后端服务之间调用同样如此(或者更久远之前的WCF + XML方式).WebApi + JSON 是优选的,很 ...