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

1. 简介

(略---)

2. 开通OSS服务 

进入官网:https://ecs.console.aliyun.com/

进入到控制台

3. OSS使用

1)创建bucket

创建成功:

2)在bucket中创建目录

可以在这上传文件:

(首次操作可能需要验证手机)

 

4. Java 程序调用OSS服务接口

1)参考文档地址

官方文档

官方介绍

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以通过调用 API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过 Web 控制台对数据进行简单的管理。OSS 适合存放任意类型的文件,适合各种网站、开发企业及开发者使用。按实际容量付费真正使您专注于核心业务。

2)创建AccessKey

①介绍

阿里云账号、密码→登录后在网页上操作

AccessKey→Java 程序登录OSS进行操作

访问密钥AccessKey(AK)相当于登录密码,只是使用场景不同。AccessKey用于程序方式调用云服务API,而登录密码用于登录控制台。如果您不需要调用API,那么就不需要创建AccessKey。

您可以使用AccessKey构造一个API请求(或者使用云服务SDK)来操作资源。AccessKey包括AccessKeyId和AccessKeySecret。

  • AccessKeyId用于标识用户。
  • AccessKeySecret是用来验证用户的密钥。AccessKeySecret必须保密。

警告 禁止使用主账号AK,因为主账号AK泄露会威胁您所有资源的安全。请使用子账号(RAM用户)AK进行操作,可有效降低AK泄露的风险。

②创建子账号AK的操作步骤

1.使用主账号登录RAM管理控制台

2.如果未创建RAM用户,在左侧导航栏,单击用户管理,然后单击新建用户,创建RAM用户。如果已创建RAM用户,跳过此步骤。

3.在左侧导航栏,单击用户管理,然后单击需要创建AccessKey的用户名,进入用户详情页面。

4.在用户AccessKey区域,单击创建AccessKey。

5.完成手机验证后,在新建用户AccessKey页面,展开AccessKey详情,查看AcessKeyId和AccessKeySecret。然后单击保存AK信息,下载AccessKey信息。

注意 AccessKey创建后,无法再通过控制台查看。请您妥善保存AccessKey,谨防泄露。

6.单击该RAM用户对应的授权,给RAM用户授予相关权限,例如AliyunOSSFullAccess将给RAM用户授予OSS的管理权限。

③操作步骤

这里会收到验证码..填上就行

会出现以下界面:

及时保存!!!只能看到这一次

3)SDK参考

JDK:Java Development Kit

SDK:Software Development Kit

<!-- SDK依赖 -->
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>2.8.3</version>
</dependency>

过程图:

参考文档:https://help.aliyun.com/document_detail/31848.html?spm=a2c4g.11174283.6.605.6bac7da2jOBrQC

官网的示例代码:

// 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实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
​
// 上传文件流。
InputStream inputStream = new FileInputStream("<yourlocalFile>");
ossClient.putObject("<yourBucketName>", "<yourObjectName>", inputStream);
​
// 关闭OSSClient。
ossClient.shutdown();

下面为我写的上传文件的代码:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import com.aliyun.oss.OSSClient;

public class OOSTest {
    public static void main(String[] args) throws FileNotFoundException {
        // Endpoint我这里是深圳
        String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 这里是刚刚叫保存的 accessKeyId和accessKeySecret
        String accessKeyId = "LTAI4FboSRAQu3z";
        String accessKeySecret = "adZ3yWrjRLCUrNsZhdxEv";
        // 创建OSSClient实例。
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        // 声明要上传的目录和文件名
        String fileName = "hjy.jpg";
        // 声明上传文件后存入的目录的名称
        String folderName = "test";
        // 刚刚声明桶的名称
        String bucketName = "jyyzbucket";
        // 存入对象的名称=目录名称+"/"+文件名
        String objectName = folderName + "/" + fileName;
        // 上传文件流。
        InputStream inputStream = new FileInputStream(fileName);
        ossClient.putObject(bucketName, objectName, inputStream);
        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

哦出错了:

[ResponseError]:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>AccessDenied</Code>
  <Message>You have no right to access this object because of bucket acl.</Message>
  <RequestId>5E80CD31D21B413231ADDC6E</RequestId>
  <HostId>jyyzbucket.oss-cn-shenzhen.aliyuncs.com</HostId>
</Error>

哦,忘记开权限了:

这样就上传上来了:

发布了48 篇原创文章 · 获赞 18 · 访问量 2799

猜你喜欢

转载自blog.csdn.net/weixin_44210965/article/details/105188850