步骤
1.初始化ossClient实例
2.判断bucket是否存在(doesBucketExist)
3.上传图片(putObject(bucket,key,file))(注意:key是图片所在的路径+图片名,例如:aaaa.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; } }