阿里云数据备份的OSS接口

最近在做一个新的项目,从RDS备份到OSS,进行数据备份以及后续的还原。这边对阿里云的OSS数据上传接口进行说明,先做下笔记先简单介绍下OSS:

①Object

在OSS中,用户操作的基本数据单元是Object。单个Object最大允许存储5TB的数据。Object包含key、meta和data。其中,key是Object的名字;meta是用户对该object的描述,由一系列name-value对组成;data是Object的数据。

其中Object命名规范:使用UTF-8编码;长度必须在1-1023字节之间;不能以“/”或者“\”字符开头。

命名demo1:example.txt 这个在Bucket内存储的就是一个文件。

命名demo2:cd/example.txt 这个在Bucket内存储的就是一个文件夹的形式,一级目录是cd,二级目录才是文件example.txt。等下我会在下面的demo实例中给出截图。

②Bucket

存储在OSS上的每个Object必须都包含在某个Bucket中。这个去阿里的OSS上注册OSS实体Bucket。系统会给用户分配一对Access Key ID和Access Key Secret,称为ID对,用于标识用户,为访问OSS的每个Bucket做签名验证。

1)文件存储到OSS:

我们使用的是OSSClient中的方法public PutObjectResult putObject(String bucketName, String key,  File file, ObjectMetadata metadata)

参数介绍:

bucketName:你的Bucket名称

key:就是你存储Object的路径,也就是上面介绍的Object命名。like:"example.tar"

file:你存储到OSS上的文件

metadata:ObjectMetaData是用户对该object的描述,由一系列name-value对组成。这里我们直接设为空。

import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectResult; import Java.io.File; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /** * Created by XuHui on 2016/9/28. */ public class TestJava { static String accessKeyId = "Your Access Key ID";//你注册OSS建立实例Bucket的accessKeyId和accessKeySecret static String accessKeySecret = "Your Access Key Secret"; static String endPoint = "OSS url";//OSS的访问地址 static String bucketName = "bucket-example";//Bucket的名称 public static void main(String[] rags)throws Exception{ //上传的File File file = new File("C:\\Users\\Desktop\\example.tar"); OSSClient ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret); //objKey是存储到Bucket的Object的相对路径 String objKey = "example.tar"; ObjectMetadata objMetadata = new ObjectMetadata();//objMetadata可为空 PutObjectResult result = ossClient.putObject(bucketName, objKey, file, objMetadata); System.out.print("PutObjectResult " + result + ", " + result.getETag()); } }

看看Bukect的存储效果

阿里云数据备份的OSS接口

2)URL下载内容存储到OSS:

我们使用的是OSSClient中的方法public PutObjectResult putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata)

参数介绍:

bucketName:你的Bucket名称

key:就是你存储Object的路径,也就是上面介绍的Object命名。like:"cd/example.tar"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9a5ec5e77c5020c0ad24c5ee1918f3ee.html