步骤

  1.初始化ossClient实例

  2.判断bucket是否存在(doesBucketExist)

  3.上传图片(putObject(bucket,key,file))(注意:key是图片所在的路径+图片名,例如:aa\aa.jpg)

  4.查看所有的object(listObjects)

  5.删除图片(deleteObject)

  6.将图片下载本地

  

    GetObjectRequest getObjectRequest = new GetObjectRequest(ossContants.BUCKET_NAME, "aa/aa.jpg");
ObjectMetadata objectMetadata = ossClient.getObject(getObjectRequest, new File("d:\\aa.jpg"));

  7.获取Oss的访问地址

    /**
* 获得url链接
*
* @param key
* @return
*/
public static String getUrl(String key) {
// 设置URL过期时间为10年 3600l* 1000*24*365*10
Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);
// 生成URL
URL url = ossClient.generatePresignedUrl(ossContants.BUCKET_NAME, "aa/aa.jpg", expiration);
if (url != null) {
return url.toString();
}
return null;
}

  8.所用到的参数类

public class ossContants {

    public static final String ACCESSKEYID="aa";

    public static final String ACCESSKEYSECRET="aa";

    public static final String ENDPOINT="aa";//域

    public static final String BUCKET_NAME="aa";

    //上传object
public static void putObject(String bucketName, String key, String filePath) throws FileNotFoundException {
// 初始化OSSClient
OSSClient client = new OSSClient(ENDPOINT,ACCESSKEYID, ACCESSKEYSECRET,getConf());
// 获取指定文件的输入流
File file = new File(filePath);
InputStream content = new FileInputStream(file);
// 创建上传Object的Metadata
ObjectMetadata meta = new ObjectMetadata();
// 必须设置ContentLength
meta.setContentLength(file.length());
// 上传Object.
PutObjectResult result = client.putObject(bucketName, key, content, meta);
// 打印ETag
System.out.println(result.getETag());
} //获取bucket中的所有的object
public static ObjectListing listObjects(String bucketName) {
// 初始化OSSClient
OSSClient client = new OSSClient(ENDPOINT,ACCESSKEYID, ACCESSKEYSECRET,getConf());
// 获取指定bucket下的所有Object信息
ObjectListing listing = client.listObjects(bucketName);
// 遍历所有Object return listing; } /**
* 使用代理创建OSSClient,并设置网络参数
* ClientConfiguration对象:设置代理ip、端口、及其网络参数
*
* @return
*/
public static ClientConfiguration getConf() { // 创建ClientConfiguration实例,根据需要修改默认参数
ClientConfiguration conf = new ClientConfiguration(); try {
// 开启支持CNAME选项
conf.setSupportCname(false); // // 配置代理为本地8080端口
// conf.setProxyHost("127.0.0.1");
// conf.setProxyPort(8080);
//
// //设置用户名和密码
// conf.setProxyUsername("username");
// conf.setProxyPassword("password");
//
// // 设置OSSClient使用的最大连接数,默认1024
// conf.setMaxConnections(200);
//
// // 设置Socket传输数据超时的时间为2000毫秒,默认50秒
conf.setSocketTimeout(10000);
//
// // 设置失败请求重试次数,默认3次
conf.setMaxErrorRetry(5);
//
// // 设置TCP连接超时为5000毫秒
conf.setConnectionTimeout(5000*2); } catch (Exception e) { e.printStackTrace(); } return conf;
}
}

OSS 实例的更多相关文章

  1. angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

    2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...

  2. STS临时授权访问OSS

    STS临时授权访问OSS OSS 可以通过阿里云 STS (Security Token Service) 进行临时授权访问.阿里云 STS 是为云计算用户提供临时访问令牌的Web服务.通过 STS, ...

  3. 阿里云OSS整合

    一.对象存储OSS 为了解决海量数据存储与弹性扩容(主要是静态文件的存储例如图片,语音,视频等),项目中我们通常采用云存储的解决方案- 阿里云OSS. 1.开通"对象存储OSS"服 ...

  4. 整合阿里云OSS

    整合阿里云OSS 一.对象存储OSS 为了解决海量数据存储与弹性扩容,采用云存储的解决方案- 阿里云OSS. 1.开通"对象存储OSS"服务 (1)申请阿里云账号 (2)实名认证 ...

  5. 使用ECS和OSS搭建个人网盘

    体验简介 本场景将提供一台配置了Centos 7.7版本的ECS实例(云服务器)和对象存储OSS实例.通过本教程的操作,您可以基于ECS和OSS快速搭建一个个人网盘. 体验此场景后,可以掌握的知识有: ...

  6. 谷粒 | 10 | 阿里云OSS存储对象服务

    阿里云OSS对象存储服务 准备工作 1.在service模块新建子模块service_oss 2.引入pom.xml文件中引入oss服务依赖 <dependencies> <!--a ...

  7. InfluxDB(官方使用说明)

    安装InfluxDB OSS 此页面提供有关安装,启动和配置InfluxDB的说明. InfluxDB OSS安装要求 root为了成功完成,需要安装InfluxDB软件包或具有管理员权限. Infl ...

  8. js使用WebUploader做大文件的分块和断点续传

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

  9. php+超大文件上传

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

随机推荐

  1. 消息队列之ActiveMQ简单环境搭建

    准备: 环境:win7,Eclipse,jdk1.8 ActiveMQ版本:ActiveMQ 5.9.0 Release下载地址:http://activemq.apache.org/download ...

  2. Maven Web项目解决跨域问题

    跨域问题目前笔者所用到的方案大致有三种:jsonp,SpringMVC 4以上注解方式和cros三方过滤器. Jsonp JSONP(JSON with Padding)是一个非官方的协议,它允许在服 ...

  3. 每日质量NPM包事件绑定_bindme(详解React的this)

    一.bindme 官方定义: is a helper to bind a list of methods to an object reference 理解: 因为不推荐在render()里构建函数, ...

  4. _itemmod_gem_remove

    该表可配置以一定代价移除宝石,移除后获得该宝石 `entry`宝石ID `reqId` 需求ID `chance`几率 `comond` 备注

  5. 【三十五】thinkphp之视图

    1.模板定义 视图属于mvc中的v.一般是html结合php获取的数据提供给用户使用. 每个模板的文件都是独立的(文件名与控制器名称必须一样) 默认的模板文件规则是视图目录/[模板主题]控制器/操作名 ...

  6. Python使用win32com实现的模拟浏览器功能

    # -*- coding:UTF- -*- #!/user/bin/env python ''' Created on -- @author: chenzehe ''' import win32com ...

  7. Cross Validation(交叉验证)

    交叉验证(Cross Validation)方法思想 Cross Validation一下简称CV.CV是用来验证分类器性能的一种统计方法. 思想:将原始数据(dataset)进行分组,一部分作为训练 ...

  8. django Admin文档生成器

    Django的admindocs应用可以从模型.视图.模板标签等地方获得文档内容. 一.概览 要激活admindocs,请按下面的步骤操作: 在INSTALLED_APPS内添加django.cont ...

  9. 学习笔记37—WIN7系统本地连接没有有效的IP地址 电脑本地连接无有效ip配置怎么办

    WIN7系统本地连接没有有效的IP地址 电脑本地连接无有效ip配置怎么办 家中有两台笔记本都有无线网卡,现在想让两台笔记本都能够上网,而又不想购买路由器,交换机等设备,这个时候怎么办呢? 其实只要进行 ...

  10. 牛客OI周赛6-提高组 A 大法师与魔法石

    大法师与魔法石 思路: 对于一个ai, 它可以构成区间[ai/v, ai] 假设和它相邻的为aj, 那么ai 和 aj 构成的区间为[(ai+aj) / v, ai+aj] 那么这两个区间能合并的条件 ...