OSS 实例

步骤

  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;
    }
}
原文地址:https://www.cnblogs.com/itcx1213/p/7998876.html