步骤

  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. Java 基础功底

    Java 基础语法特性: 首先了解并做好Java Web 开发环境配置(包含 JDK 的配置)是非常必要的.其中 CLASSPATH 的值开始必须包含 ".",否则用 javac ...

  2. JqGrid 列时间格式化

    {name:'createTime',index:'createTime',label:"创建时间", editable:false,formatter:"date&qu ...

  3. Java常见异常:Exception in thread "main" java.lang.NoClassDefFoundError

    在某一路径下执行编译好的class文件出错. 异常如下: E:\liwy>java Test98 Exception in thread "main" java.lang.N ...

  4. React Native 组建之IOS和Android通用抽屉

    /** * Sample React Native App * https://github.com/facebook/react-native * @flow *npm:https://www.np ...

  5. python 目录切换

    #- * -coding: utf - - * - import os, sys path = "c:\\" # 查看当前工作目录 retval = os.getcwd() pri ...

  6. 构造函数中用:base

    如果person中有自己写的构造函数 则Student类的构造方法必须要加:base继承这个构造方法!因为默认的Student:base(空)构造方法已经被干掉了 构造方法的调用//base里的参数, ...

  7. IPC 之 ContentProvider 的使用

    一.概述 ContentProvider 是 Android 中提供的专门用于不同应用间进行数据共享的方式.和 Messenger 一样,ContentProvider 的底层实现同样也是 Binde ...

  8. python3+虹软2.0 离线人脸识别 demo

    python3+虹软2.0的所有功能整合测试完成,并对虹软所有功能进行了封装,现提供demo主要功能,1.人脸识别2.人脸特征提取3.特征比对4.特征数据存储与比对其他特征没有添加 虹软SDK下载戳这 ...

  9. 分散的配置文件VS集中的注册表

    假设有这样一个工程,是这样设计的: 1整个软件.服务被切分为 由若干独立的多道程序(多个进程/微服务): 2 这些多道程序只是“机制mechanism”,而“策略strategy”写在各自用到的配置文 ...

  10. JS中UTF-8和UTF-16互转

    1.由于服务端使用的Go,默认是使用UTF-8编码的,而JS默认是Unicode编码的(也就是UTF-16),所以为了字符串编码的一致性,将前端字符串数据编码转换为UTF-8之后再发送给服务端,服务端 ...