package com.doumee.core.utils.azure; import com.azure.core.http.rest.Response; import com.azure.storage.blob.BlobClient; import com.azure.storage.blob.BlobContainerClient; import com.azure.storage.blob.BlobServiceClient; import com.azure.storage.blob.BlobServiceClientBuilder; import com.azure.storage.blob.models.BlobRequestConditions; import com.azure.storage.blob.models.BlockBlobItem; import com.azure.storage.blob.options.BlobParallelUploadOptions; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.io.InputStream; @Data @Slf4j public class AzureBlobUtil { public String connectionString; public BlobServiceClient blobServiceClient; public String accountName; public String accountKey; public String endpoint; public String container; public BlobContainerClient blobContainerClient ; public AzureBlobUtil(String accountName, String accountKey, String endpoint, String container){ try { this.accountKey = accountKey; this.accountName = accountName; this.endpoint = endpoint; this.container = container; this.connectionString = "DefaultEndpointsProtocol=https;AccountName=" + this.accountName + ";AccountKey=" + this.accountKey + ";EndpointSuffix=" + endpoint; this.blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient(); this.blobContainerClient = this.blobServiceClient.getBlobContainerClient(this.container); }catch (Exception e) { e.printStackTrace(); } } public void initClient( ) { try { this.blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient(); this.blobContainerClient = this.blobServiceClient.getBlobContainerClient(this.container); }catch (Exception e) { e.printStackTrace(); } } public void uploadFile(String fileName, InputStream data) { try { if(getBlobContainerClient() == null){ initClient(); } BlobClient client = this.blobContainerClient.getBlobClient(fileName); client.upload(data, data.available(), true); }catch (Exception e) { e.printStackTrace(); } } public boolean uploadFileWithResponse(String fileName, InputStream inputStream) { try { if(getBlobContainerClient() == null){ initClient(); } BlobParallelUploadOptions options = new BlobParallelUploadOptions(inputStream, inputStream.available()); options.setRequestConditions(new BlobRequestConditions().setIfNoneMatch("*")); Response rsp = this.blobContainerClient.getBlobClient(fileName).uploadWithResponse(options, null, null); if(rsp.getStatusCode()==201) { log.info("上传成功:........"+fileName); return true; } }catch (Exception e) { e.printStackTrace(); log.info("上传失败:........"+e.getMessage()); } return false; } }