OSS上传图片,文件或者其他流
2017-11-07 21:03
393 查看
1.导入阿里云oss的jar包,maven配置如下:
2.上传二维码或者文件(巧用方法重载)
3.外部调用oss
然后根据 url=Constants.RESOURCE_PATH + key 来取资源
<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 来取资源
相关文章推荐
- 通过formFile实现上传文件,图片,或者其他,struts中继承action和dispatchAction的区别和用法
- 问题,如何把上传文件的浏览按钮换成其他样式 或者图片
- 如何把上传文件的浏览按钮换成其他样式 或者图片
- 小技巧,如何把上传文件的浏览按钮换成其他样式 或者图片
- 解决.net项目中上传的图片或者文件太大无法上传问题
- php+ajax上传文件或者图片(支持非ie浏览器)
- .net项目中上传的图片或者文件太大 无法上传
- VFP将图片或其他文件保存到SQL Server的Text类型字段或者Access的备注字段中,并可以还原或显示。 .
- js实现上传多个图片或者多个文件
- 读取两个excl文件和图片文件夹 并将其中的图片文件移动其他文件夹excl内容上传数据库
- 自定义jqGrid编辑页面并上传文件或者图片
- Apache Cordova 安卓android上传图片或者文件 调用后台服务实现java代码 ft.upload(imageURI, uri, that.uploadSuccess, that.
- Android 图片或者文件上传服务器(Android+Struts2)
- VFP将图片或其他文件保存到SQL Server的Text类型字段或者Access的备注字段中,并可以还原或显示。
- 上传图片到服务器,服务器保存并且接收到了,但是必须刷新文件夹或者重新部署文件才能在客户端显示图片
- 关于上传图片(抑或其他文件的服务端判断)
- python+selenium 上传文件或者图片
- 在.net MVC中异步上传图片或者文件
- C#上传文件或者图片
- java上传图片或者文件