上传文件
更新时间: 2020-03-24
目录
简单上传指的是使用OSS API中的PutObject方法上传单个文件(Object),本文主要介绍通过Java SDK进行简单上传。
简单上传分为文件上传和流式上传。
上传文件主要可以设置的属性有:
- 元数据
- 访问权限
简单文件上传
文件上传使用本地文件作为OSS文件的数据源。
以下代码用于简单文件上传:
// Endpoint以华北三为例,其它Region请按实际情况填写。
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";
String key = "<yourObjectName>";
File file = new File("*** Provide object local address ***");
//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);
//简单文件上传
ossClient.putObject(bucketName, key, file);
流式上传
流式上传使用InputStream作为上传的数据源。
以下代码用于流式上传:
// Endpoint以华北三为例,其它Region请按实际情况填写。
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";
String key = "<yourObjectName>";
final InputStream inputStream = new FileInputStream("*** Provide object local address ***");
//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);
//流上传
ossClient.putObject(bucketName, key, inputStream);
带数据元及访问权限的上传
以下代码用于带数据元及访问权限的上传
// Endpoint以华北三为例,其它Region请按实际情况填写。
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";
String key1 = "<yourObjectName>";
String key2 = "<yourObjectName>";
File file = new File("*** Provide object local address ***");
final InputStream inputStream = new FileInputStream("*** Provide object local address ***");
//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);
//设置元数据
ObjectMetadata objectMetadata = new ObjectMetadata();
// 设置内容被下载时的编码格式。
objectMetadata.setContentEncoding("utf-8");
// 设置上传文件的长度。如超过此长度,则会被截断,为设置的长度。如不足,则为上传文件的实际长度。
objectMetadata.setContentLength(file.length());
// 指定上传的内容类型。内容类型决定浏览器将以什么形式、什么编码读取文件。如果没有指定则根据文件的扩展名生成,如果没有扩展名则为默认值application/octet-stream。
objectMetadata.setContentType("*** Provide your content type ***");
//带数据元的文件上传
ossClient.putObject(bucketName, key1, file, objectMetadata);
//带数据元及访问权限的文件上传
//ossClient.putObject(bucketName, key1, file, objectMetadata);
//带数据元的流上传
ossClient.putObject(bucketName, key2, inputStream, objectMetadata);
//带数据元及访问权限的流上传
//ossClient.putObject(bucketName, key2, inputStream, objectMetadata);