您的位置:首页 > 其它

OSS上传图片,文件或者其他流

2017-11-07 21:03 393 查看
1.导入阿里云oss的jar包,maven配置如下:

<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.0.2</version>
</dependency>


2.上传二维码或者文件(巧用方法重载)

private static final ErrorMsg ERROR_PUT_OBJECT_EXCEPTION = new ErrorMsg( "error.put.object.exception", "上传PUT_OBJECT发生异常");

/**
* 上传流(未设置文件头的内容类型.)
* @param resourceHost
* @param key
* @param inputStream
* @return
*/
public ResultData<PutObjectResult> putStream(String resourceHost, String key, InputStream inputStream) {
return putObject(resourceHost,key,inputStream,null);
}

/**
* 上传Object (设置文件头的内容类型.)
* @param resourceHost
* @param key
* @param inputStream
* @return
*/
public ResultData<PutObjectResult> putObject(String resourceHost, String key, InputStream inputStream, String contentType) {
String bucketName = urlToBucketName(resourceHost);
OSSClient client = new OSSClient(this.endpoint, this.accessKeyId, this.accessKeySecret);
PutObjectResult result = null;
try {
// 创建上传Object的Metadata
ObjectMetadata meta = new ObjectMetadata();
if(contentType!=null){

meta.setContentType(contentType);

}
// 上传Object.
result = client.putObject(bucketName, key, inputStream, meta);
LOGGER.info("上传文件到oss返回result={}",result);
} catch (Exception e) {
LOGGER.error("exception threw while putObject. bucketName={}, key={}",
bucketName, key, e);
return ResultData.error(ERROR_PUT_OBJECT_EXCEPTION);
}
return ResultData.ok(result);
}

//资源路径url转换为bucketName
private String urlToBucketName(String resourceHost){
return resourceHost.substring(7, resourceHost.length()-1).replaceAll("\\.", "-");
}



3.外部调用oss

ResultData<PutObjectResult> result = aliyunOssClient.putObject(Constants.RESOURCE_PATH,key,in);
if (!result.isSuccessful()) {
LOGGER.error("上传文件至OSS失败.bucketName={},key={},inputStream",Constants.RESOURCE_PATH,key,in);
return null;
}
return  Constants.RESOURCE_PATH + key;
一般  Constants.RESOURCE_PATH=“http://test.baidu.com/”作为前缀一般会配在数据库里面,而key作为规则路径,可自己匹配规则,a/uuid/n.pdf之类的

然后根据 url=Constants.RESOURCE_PATH + key 来取资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阿里云 oss io流 maven
相关文章推荐