阿里云对象存储

在使用阿里云对象存储之前,如果是MAVEN项目,请先引入一下依赖

<dependency>
    <groupId>com.alipay.sdkgroupId>
    <artifactId>alipay-sdk-javaartifactId>
    <version>3.7.4.ALLversion>
dependency>
<dependency>
    <groupId>com.aliyun.ossgroupId>
    <artifactId>aliyun-sdk-ossartifactId>
    <version>2.8.3version>
dependency>

对象存储基础拥有Bucket概念(存储空间)。每一个存储空间的大小没有规定,但是同一用户同一个地域最多拥有30Bucket,并且无法提升。

接下来附加一些基本功能的代码逻辑,在可视化界面对的再次就不在进行叙述。


创建一个OSSClient示例对象(无论进行何种操作,均需要先创建示例)

//阿里云ACCESS_ID
private static String ACCESS_ID = "---------------";
//阿里云ACCESS_KEY
private  static String ACCESS_KEY = "---------------";
//阿里云OSS_ENDPOINT  Url
private static String OSS_ENDPOINT = "---------------";

private static OSSClient createClient(){
    OSSClient client = new OSSClient(OSS_ENDPOINT, ACCESS_ID, ACCESS_KEY);
    return client;
}

创建存储空间

public static boolean createBucket(String bucketName){
    OSSClient client = createClient();
    Bucket bucket = client.createBucket(bucketName);
    if(null != bucket){
        return true;
    }else {
        return false;
    }
}

获得存储空间列表 

public static List< Bucket> getBucketList(){
    // 列举存储空间。
    OSSClient client = createClient();
    List< Bucket> buckets = client.listBuckets();
    //接下来获取存储空间的信息
    for (Bucket bucket : buckets) {
        BucketInfo info = client.getBucketInfo(bucket.getName());
        // 获取地域。
        info.getBucket().getLocation();
        // 获取创建日期。
        info.getBucket().getCreationDate();
        // 获取拥有者信息。
        info.getBucket().getOwner();
        // 获取权限信息。
        info.getGrants();
    }
    // 关闭OSSClient。
    client.shutdown();
    return buckets;
}

删除存储空间 

public static Boolean deleteBucket(String bucketName) {
    OSSClient client = createClient();
    client.deleteBucket(bucketName);
    client.shutdown();
    return true;
}

获取存储空间内的所有对象信息

public static List< OSSObjectSummary> findObject(String bucketName) {
    OSSClient client = createClient();
    ObjectListing objectListing = client.listObjects(bucketName);
    List< OSSObjectSummary> objectSummaries = objectListing.getObjectSummaries();
    client.shutdown();
    return objectSummaries;
}

文件上传并且设置有效时间 

public static String upload(MultipartFile multipartFile, String bucketName) {
    OSSClient client = createClient();
    // 上传的文件不是空,并且文件的名字不是空字符串
    if (multipartFile.getSize() != 0 && !"".equals(multipartFile.getName())) {
        ObjectMetadata om = new ObjectMetadata();
        om.setContentLength(multipartFile.getSize());
        // 设置文件上传到服务器的名称
        om.addUserMetadata("filename", multipartFile.getOriginalFilename());
        try {
            client.putObject(bucketName, multipartFile.getOriginalFilename(), new ByteArrayInputStream(multipartFile.getBytes()), om);
        } catch (IOException e) {

        }
    }
    // 设置这个文件地址的有效时间
    Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);
    String url = client.generatePresignedUrl(bucketName, multipartFile.getOriginalFilename(), expiration).toString();
    client.shutdown();
    return url;
}

下载

public static boolean download(String name, String bucketName) throws IOException {
    //桌面路径
    File desktopDir = FileSystemView.getFileSystemView() .getHomeDirectory();
    String desktopPath = desktopDir.getAbsolutePath();
    OSSClient client = createClient();
    ObjectMetadata object = client.getObject(new GetObjectRequest(bucketName, name),
       new File(desktopPath + "\\" + name));
    // 关闭OSSClient。
    client.shutdown();
    return null == object;
}

删除单个文件 

public static void delete(String name, String bucketName) {
    OSSClient client = createClient();
    client.deleteObject(bucketName, name);
    // 关闭OSSClient。
    client.shutdown();
}

删除多个文件

public static boolean deletes(List< String> list, String bucketName){
    //每次最多删除1000个文件
    OSSClient client = createClient();
    DeleteObjectsResult deleteObjectsResult = client.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(list));
    //删除成功的对象集合
    List< String> deletedObjects = deleteObjectsResult.getDeletedObjects();
    client.shutdown();
    return deletedObjects.size() == list.size();
}

修改文件的访问权限

public static void upadtePermission(String bucketName, String objectName){
    OSSClient client = createClient();
    //  私有         CannedAccessControlList.Private
    //  继承Bucket   CannedAccessControlList.Default
    //  公共读       CannedAccessControlList.PublicRead
    //  公共读写     CannedAccessControlList.PublicReadWrite
    //  例如: 设置文件的访问权限为公共读。
    client.setObjectAcl(bucketName, objectName, CannedAccessControlList.PublicRead);
    // 关闭OSSClient。
    client.shutdown();
}

相关文档:

阿里云对象存储官方文档介绍:https://help.aliyun.com/product/31815.html?spm=a2c4g.750001.list.15.44487b13VodP7O

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值