• 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;
        }
    }
  • 相关阅读:
    为什么要使用 npm?
    scrapy框架使用.Request使用meta传递数据,以及deepcopy的使用,这种三层for循环,就会有deepcopy的问题,
    scrapy download delay, CONCURRENT_REQUESTS
    分布式爬虫部署,爬虫需要什么样的服务器配置,现在爬虫岗位都要会这个
    爬虫的难点不在爬虫,而在对抗
    scrapy框架使用-下载视频,使用you-get模块来下载视频
    scrapy框架使用-爬虫中间件
    4-06python语法基础-内置模块-urllib模块,以及第三方模块requests的使用,cookie字典生成式,切url的末尾字符串
    scrapy框架使用-下载图片,使用urllib,使用requests,使用imagepipeline,
    4-05python语法基础-内置模块-json模块
  • 原文地址:https://www.cnblogs.com/itcx1213/p/7998876.html
Copyright © 2020-2023  润新知