AWS S3上传文件、下载文件、删除。

本文介绍了如何进行从AWS S3到Azure Storage的文件操作,包括上传、下载和删除文件。示例中提供了相关的Java代码实现,并提醒注意服务的地域问题。
摘要由CSDN通过智能技术生成

最近遇到一个『文件上传』的需求,要求从亚马逊的S3迁移为Azure Storage(微软的存储服务)。 

废话不多,直接上示例(不过要注意一个问题,你的服务链接是在国内还是国外):

maven依赖:

<dependency>
             <groupId>com.microsoft.azure</groupId>
             <artifactId>azure-storage</artifactId>
             <version>5.0.0</version>
 </dependency>

java类:


package com.customerservicePES.AzureStorage;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.EnumSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.customerservicePES.utils.SystemConfigUtils;
import com.microsoft.azure.storage.CloudStorageAccount;
import com.microsoft.azure.storage.OperationContext;
import com.microsoft.azure.storage.StorageException;
import com.microsoft.azure.storage.blob.BlobContainerPermissions;
import com.microsoft.azure.storage.blob.BlobContainerPublicAccessType;
import com.microsoft.azure.storage.blob.BlobRequestOptions;
import com.microsoft.azure.storage.blob.CloudBlobClient;
import com.microsoft.azure.storage.blob.CloudBlobContainer;
import com.microsoft.azure.storage.blob.CloudBlockBlob;
import com.microsoft.azure.storage.blob.SharedAccessBlobPermissions;
import com.microsoft.azure.storage.blob.SharedAccessBlobPolicy;

/**
 * 
 * @author zhangjiamei
 *
 */
public class AzureStorageV7Util {
    private static Logger logger = LoggerFactory.getLogger(AzureStorageV7Util.class);

    /* *************************************************************************************************************************
     * Instructions: Update the storageConnectionString variable with your AccountName and Key and then run the sample.
     * *************************************************************************************************************************
     */
    public static final String storageConnectionString =
            "DefaultEndpointsProtocol=https;" +
                    "AccountName=%s;" +
                    "AccountKey=%s;EndpointSuffix=core.chinacloudapi.cn";

    public static  CloudStorageAccount storageAccount = null;
    public static  CloudBlobClient blobClient = null;
    public static  CloudBlobContainer container=null;
    

    public static String uploadInputStreamToAzureStorage(InputStream inputStream, String fileNameALl)
    {
        String key = null;
        File sourceFile = null;
        try {
            // Parse the connection string and create a blob client to interact with Blob storage
            if(storageAccount == null){
                storageAccount = CloudStorageAccount.parse(String.format(storageConnectionString, SystemConfigUtils.getAzureStorageAccountName(),SystemConfigUtils.getAzureStorageAccountKey()));
            }else{
                logger.info("storageAccount is not null!!!");
            }
            if(blobClient == null){
                blobClient = storageAccount.createCloudBlobClient();
            }else{
                logger.info("blobClient is not null!!!");
            }
            if(container == null){
                container = blobClient.getContainerReference(SystemConfigUtils.getAzureStoragecontainer());
            }else{
                logger.info("container is not null!!!");
            }

            // Create the container if it does not exist with public access.
            logger.info(&
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值