zoukankan      html  css  js  c++  java
  • oss管理

    1.获取指定目录下的一级目录和文件,入参的目录后面不要加上/,

    调用例如 fileFolder(client,"testYqt");   这个目录名称是从bucket后面开始的,如果是整个bucket的,入参就为空

    public static void fileFolder(OSSClient client,String fileName) {
    // 构造ListObjectsRequest请求。
    ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName);
    // 设置正斜线(/)为文件夹的分隔符。
    listObjectsRequest.setDelimiter("/");
    // 设置prefix参数来获取fun目录下的所有文件。
    if(StringUtils.isNullOrEmpty(fileName)) {
    listObjectsRequest.setPrefix(fileName);
    }else {
    listObjectsRequest.setPrefix(fileName+"/");
    }
    ObjectListing listing = client.listObjects(listObjectsRequest);
    List<OSSObjectSummary> objectSummaries = listing.getObjectSummaries();
    for (String commonPrefix : listing.getCommonPrefixes()) {
    String newCommonPrefix = commonPrefix.substring(0, commonPrefix.length() - 1);
    String[] s = newCommonPrefix.split("/");
    System.out.println("目录名==>"+s[(s.length-1)]);
    }
    for (OSSObjectSummary s : objectSummaries) {
    if("/".equals(s.getKey().substring(s.getKey().length()-1))) {
    continue;
    }
    ObjectAcl objectAcl = client.getObjectAcl(bucketName, s.getKey());
    System.out.println("文件名==>" + s.getKey().substring(s.getKey().indexOf("/")+1)+"==>"+getPrintSize(s.getSize())+"=="+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(s.getLastModified())+"=="+objectAcl.getPermission().toString());
    }

    获取到的文件大小的单位为B,要进行转换,跟oss客户端的结果显示是一样的

    public static String getPrintSize(long size) {
    //如果字节数少于1024,则直接以B为单位
    long flag=size;
    if (flag < 1024) {
    return String.valueOf(size) + "B";
    } else {
    flag = flag / 1024;
    }
    if (flag < 1024) {
    return String.valueOf(new BigDecimal((float)size/1024).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()) + "KB";
    } else {
    size=flag;
    flag = flag / 1024;
    }
    if (flag < 1024) {
    return String.valueOf(new BigDecimal((float)size/1024).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()) + "MB";
    } else {
    return String.valueOf(new BigDecimal((float)size/(1024*1024)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()) + "GB";
    }
    }

  • 相关阅读:
    Docker 简单部署 ElasticSearch
    Anaconda更新失败简单解决[CondaHTTPError: HTTP 000 CONNECTION FAILED for url]
    TermKit的新一代Mac终端,在Ubuntu 11.04 轻松安装TermKit
    Linux下如何测试网速
    centos7安装yum
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    yum 安装指定版本Docker
    如何在 Apache Hive 中解析 Json 数组
    unzip解压失败( cannot find zipfile directory)
    Linux 定时任务crontab_014
  • 原文地址:https://www.cnblogs.com/you-hun/p/13228696.html
Copyright © 2011-2022 走看看