azure-storage-blob-java

安装量: 53
排名: #14020

安装

npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill azure-storage-blob-java

Azure Storage Blob SDK for Java Build blob storage applications using the Azure Storage Blob SDK for Java. Installation < dependency

< groupId

com.azure </ groupId

< artifactId

azure-storage-blob </ artifactId

< version

12.33.0 </ version

</ dependency

Client Creation BlobServiceClient import com . azure . storage . blob . BlobServiceClient ; import com . azure . storage . blob . BlobServiceClientBuilder ; // With SAS token BlobServiceClient serviceClient = new BlobServiceClientBuilder ( ) . endpoint ( "" ) . sasToken ( "" ) . buildClient ( ) ; // With connection string BlobServiceClient serviceClient = new BlobServiceClientBuilder ( ) . connectionString ( "" ) . buildClient ( ) ; With DefaultAzureCredential import com . azure . identity . DefaultAzureCredentialBuilder ; BlobServiceClient serviceClient = new BlobServiceClientBuilder ( ) . endpoint ( "" ) . credential ( new DefaultAzureCredentialBuilder ( ) . build ( ) ) . buildClient ( ) ; BlobContainerClient import com . azure . storage . blob . BlobContainerClient ; // From service client BlobContainerClient containerClient = serviceClient . getBlobContainerClient ( "mycontainer" ) ; // Direct construction BlobContainerClient containerClient = new BlobContainerClientBuilder ( ) . connectionString ( "" ) . containerName ( "mycontainer" ) . buildClient ( ) ; BlobClient import com . azure . storage . blob . BlobClient ; // From container client BlobClient blobClient = containerClient . getBlobClient ( "myblob.txt" ) ; // With directory structure BlobClient blobClient = containerClient . getBlobClient ( "folder/subfolder/myblob.txt" ) ; // Direct construction BlobClient blobClient = new BlobClientBuilder ( ) . connectionString ( "" ) . containerName ( "mycontainer" ) . blobName ( "myblob.txt" ) . buildClient ( ) ; Core Patterns Create Container // Create container serviceClient . createBlobContainer ( "mycontainer" ) ; // Create if not exists BlobContainerClient container = serviceClient . createBlobContainerIfNotExists ( "mycontainer" ) ; // From container client containerClient . create ( ) ; containerClient . createIfNotExists ( ) ; Upload Data import com . azure . core . util . BinaryData ; // Upload string String data = "Hello, Azure Blob Storage!" ; blobClient . upload ( BinaryData . fromString ( data ) ) ; // Upload with overwrite blobClient . upload ( BinaryData . fromString ( data ) , true ) ; Upload from File blobClient . uploadFromFile ( "local-file.txt" ) ; // With overwrite blobClient . uploadFromFile ( "local-file.txt" , true ) ; Upload from Stream import com . azure . storage . blob . specialized . BlockBlobClient ; BlockBlobClient blockBlobClient = blobClient . getBlockBlobClient ( ) ; try ( ByteArrayInputStream dataStream = new ByteArrayInputStream ( data . getBytes ( ) ) ) { blockBlobClient . upload ( dataStream , data . length ( ) ) ; } Upload with Options import com . azure . storage . blob . models . BlobHttpHeaders ; import com . azure . storage . blob . options . BlobParallelUploadOptions ; BlobHttpHeaders headers = new BlobHttpHeaders ( ) . setContentType ( "text/plain" ) . setCacheControl ( "max-age=3600" ) ; Map < String , String

metadata

Map . of ( "author" , "john" , "version" , "1.0" ) ; try ( InputStream stream = new FileInputStream ( "large-file.bin" ) ) { BlobParallelUploadOptions options = new BlobParallelUploadOptions ( stream ) . setHeaders ( headers ) . setMetadata ( metadata ) ; blobClient . uploadWithResponse ( options , null , Context . NONE ) ; } Upload if Not Exists import com . azure . storage . blob . models . BlobRequestConditions ; BlobParallelUploadOptions options = new BlobParallelUploadOptions ( inputStream , length ) . setRequestConditions ( new BlobRequestConditions ( ) . setIfNoneMatch ( "*" ) ) ; blobClient . uploadWithResponse ( options , null , Context . NONE ) ; Download Data // Download to BinaryData BinaryData content = blobClient . downloadContent ( ) ; String text = content . toString ( ) ; // Download to file blobClient . downloadToFile ( "downloaded-file.txt" ) ; Download to Stream try ( ByteArrayOutputStream outputStream = new ByteArrayOutputStream ( ) ) { blobClient . downloadStream ( outputStream ) ; byte [ ] data = outputStream . toByteArray ( ) ; } Download with InputStream import com . azure . storage . blob . specialized . BlobInputStream ; try ( BlobInputStream blobIS = blobClient . openInputStream ( ) ) { byte [ ] buffer = new byte [ 1024 ] ; int bytesRead ; while ( ( bytesRead = blobIS . read ( buffer ) ) != - 1 ) { // Process buffer } } Upload via OutputStream import com . azure . storage . blob . specialized . BlobOutputStream ; try ( BlobOutputStream blobOS = blobClient . getBlockBlobClient ( ) . getBlobOutputStream ( ) ) { blobOS . write ( "Data to upload" . getBytes ( ) ) ; } List Blobs import com . azure . storage . blob . models . BlobItem ; // List all blobs for ( BlobItem blobItem : containerClient . listBlobs ( ) ) { System . out . println ( "Blob: " + blobItem . getName ( ) ) ; } // List with prefix (virtual directory) import com . azure . storage . blob . models . ListBlobsOptions ; ListBlobsOptions options = new ListBlobsOptions ( ) . setPrefix ( "folder/" ) ; for ( BlobItem blobItem : containerClient . listBlobs ( options , null ) ) { System . out . println ( "Blob: " + blobItem . getName ( ) ) ; } List Blobs by Hierarchy import com . azure . storage . blob . models . BlobListDetails ; String delimiter = "/" ; ListBlobsOptions options = new ListBlobsOptions ( ) . setPrefix ( "data/" ) . setDetails ( new BlobListDetails ( ) . setRetrieveMetadata ( true ) ) ; for ( BlobItem item : containerClient . listBlobsByHierarchy ( delimiter , options , null ) ) { if ( item . isPrefix ( ) ) { System . out . println ( "Directory: " + item . getName ( ) ) ; } else { System . out . println ( "Blob: " + item . getName ( ) ) ; } } Delete Blob blobClient . delete ( ) ; // Delete if exists blobClient . deleteIfExists ( ) ; // Delete with snapshots import com . azure . storage . blob . models . DeleteSnapshotsOptionType ; blobClient . deleteWithResponse ( DeleteSnapshotsOptionType . INCLUDE , null , null , Context . NONE ) ; Copy Blob import com . azure . storage . blob . models . BlobCopyInfo ; import com . azure . core . util . polling . SyncPoller ; // Async copy (for large blobs or cross-account) SyncPoller < BlobCopyInfo , Void

poller

blobClient . beginCopy ( "" , Duration . ofSeconds ( 1 ) ) ; poller . waitForCompletion ( ) ; // Sync copy from URL (for same account) blobClient . copyFromUrl ( "" ) ; Generate SAS Token import com . azure . storage . blob . sas . * ; import java . time . OffsetDateTime ; // Blob-level SAS BlobSasPermission permissions = new BlobSasPermission ( ) . setReadPermission ( true ) ; OffsetDateTime expiry = OffsetDateTime . now ( ) . plusDays ( 1 ) ; BlobServiceSasSignatureValues sasValues = new BlobServiceSasSignatureValues ( expiry , permissions ) ; String sasToken = blobClient . generateSas ( sasValues ) ; // Container-level SAS BlobContainerSasPermission containerPermissions = new BlobContainerSasPermission ( ) . setReadPermission ( true ) . setListPermission ( true ) ; BlobServiceSasSignatureValues containerSasValues = new BlobServiceSasSignatureValues ( expiry , containerPermissions ) ; String containerSas = containerClient . generateSas ( containerSasValues ) ; Blob Properties and Metadata import com . azure . storage . blob . models . BlobProperties ; // Get properties BlobProperties properties = blobClient . getProperties ( ) ; System . out . println ( "Size: " + properties . getBlobSize ( ) ) ; System . out . println ( "Content-Type: " + properties . getContentType ( ) ) ; System . out . println ( "Last Modified: " + properties . getLastModified ( ) ) ; // Set metadata Map < String , String

metadata

Map . of ( "key1" , "value1" , "key2" , "value2" ) ; blobClient . setMetadata ( metadata ) ; // Set HTTP headers BlobHttpHeaders headers = new BlobHttpHeaders ( ) . setContentType ( "application/json" ) . setCacheControl ( "max-age=86400" ) ; blobClient . setHttpHeaders ( headers ) ; Lease Blob import com . azure . storage . blob . specialized . BlobLeaseClient ; import com . azure . storage . blob . specialized . BlobLeaseClientBuilder ; BlobLeaseClient leaseClient = new BlobLeaseClientBuilder ( ) . blobClient ( blobClient ) . buildClient ( ) ; // Acquire lease (-1 for infinite) String leaseId = leaseClient . acquireLease ( 60 ) ; // Renew lease leaseClient . renewLease ( ) ; // Release lease leaseClient . releaseLease ( ) ; Error Handling import com . azure . storage . blob . models . BlobStorageException ; try { blobClient . download ( outputStream ) ; } catch ( BlobStorageException e ) { System . out . println ( "Status: " + e . getStatusCode ( ) ) ; System . out . println ( "Error code: " + e . getErrorCode ( ) ) ; // 404 = Blob not found // 409 = Conflict (lease, etc.) } Proxy Configuration import com . azure . core . http . ProxyOptions ; import com . azure . core . http . netty . NettyAsyncHttpClientBuilder ; import java . net . InetSocketAddress ; ProxyOptions proxyOptions = new ProxyOptions ( ProxyOptions . Type . HTTP , new InetSocketAddress ( "localhost" , 8888 ) ) ; BlobServiceClient client = new BlobServiceClientBuilder ( ) . endpoint ( "" ) . sasToken ( "" ) . httpClient ( new NettyAsyncHttpClientBuilder ( ) . proxy ( proxyOptions ) . build ( ) ) . buildClient ( ) ; Environment Variables AZURE_STORAGE_CONNECTION_STRING = DefaultEndpointsProtocol = https ; AccountName = .. . AZURE_STORAGE_ACCOUNT_URL = https:// < account

.blob.core.windows.net Trigger Phrases "Azure Blob Storage Java" "upload download blob" "blob container SDK" "storage streaming" "SAS token generation" "blob metadata properties" When to Use This skill is applicable to execute the workflow or actions described in the overview.

返回排行榜