Azure Blob Storage for Java
A practical Java playbook for building file and streaming workflows on Azure Blob Storage.
The skill documents SAS, connection strings, shared keys, and DefaultAzureCredential, and it covers external side effects including upload, copy, deletion, and SAS generation. However, it does not state least-privilege guidance, prohibit hard-coded secrets, require confirmation, disclose data flows, or provide recovery and rollback guidance, so points are deducted.
The main Azure Blob Storage Java paths are covered and a basic exception example is included. Static review cannot verify execution, several snippets omit imports, some use string length where byte length may be required, and abnormal-input diagnostics are limited, so points are deducted.
The name, description, trigger phrases, and scenarios are clear, covering containers, upload, download, streaming, metadata, and SAS. Non-fit boundaries, input/output constraints, Chinese-language guidance, and mainland-China network suitability are not stated, so points are deducted.
The material is readable and layered across installation, clients, core patterns, errors, environment variables, and a separate examples file. MIT licensing, author, and version metadata are present, but changelog, maintenance ownership, update path, compatibility guidance, and systematic FAQs are missing, so points are deducted.
The skill provides directly reusable templates for common Azure Blob Java SDK tasks and likely reduces lookup effort. Static review cannot validate the snippets, and production concerns such as robust retries, concurrency, pagination, authorization, and secure configuration remain for the user to add, so it does not receive full marks.
Pinned dependency information, concrete API snippets, error-code examples, and a complete example provide some auditability. There is no skill-specific test suite, build result, or third-party execution evidence in the supplied material, so the score is limited.
- Do not hard-code connection strings, account keys, or SAS tokens; prefer least-privilege managed identity and confirm the scope before deletion, overwrite, copy, or SAS generation.
- Compile and validate the examples against the declared SDK version and project dependencies, especially imports, byte-length semantics for streams, exception handling, retries, pagination, and resource cleanup.
- The supplied material does not establish mainland-China network reachability, endpoint alternatives, or Chinese troubleshooting guidance; verify endpoint and authentication-service access before deployment.
What it does & when to use it
This Agent Skill guides coding agents working with the Azure Storage Blob SDK for Java. It covers client construction, authentication with SAS, connection strings, or DefaultAzureCredential, and common container and blob operations. Examples include uploads, downloads, streaming, listing, deletion, copying, SAS generation, metadata, leases, proxy configuration, and error handling. It is one skill in Microsoft’s 190-skill agent-skills monorepo, which the README describes as actively developed.
Provides Java and Maven patterns for creating BlobServiceClient, BlobContainerClient, and BlobClient instances; uploading strings, files, streams, and option-configured data; downloading BinaryData, files, streams, and InputStreams; listing blobs by prefix or hierarchy; deleting and copying blobs; generating blob- and container-level SAS tokens; reading properties; setting metadata and HTTP headers; acquiring and releasing leases; configuring an HTTP proxy; and handling BlobStorageException status and error codes.
- A Java backend developer needs to upload local files to Azure Blob Storage with overwrite or create-only behavior.
- An application must download text, binary content, or large objects as streams for processing.
- A service needs to enumerate blobs by container, prefix, or virtual directory and inspect metadata.
- A team needs examples for connecting with SAS tokens, connection strings, or DefaultAzureCredential.
- A concurrent workflow needs blob leases or request conditions to coordinate writes.
Pros & cons
- Covers the main Blob Storage lifecycle: containers, uploads, downloads, listing, deletion, and copying.
- Shows file, BinaryData, InputStream, and OutputStream workflows.
- Includes authentication, SAS generation, metadata, headers, leases, proxy setup, and exception handling.
- The README reports 12 test scenarios for this Java skill.
- Its scope is Azure Storage Blob SDK for Java rather than other Azure storage services.
- It does not specify a Java version, complete build workflow, or Azure resource provisioning steps.
- Examples require a valid storage endpoint and credentials; detailed permission setup is not provided.
- The repository README identifies the project as actively developed, so SDK patterns and test coverage may change.
How to install
In an Agent environment that supports the repository, run npx skills add microsoft/skills and select azure-storage-blob-java in the installation wizard. The README says skills are installed into the selected agent directory, such as .github/skills/ for GitHub Copilot. The source skill is located at .github/plugins/azure-sdk-java/skills/azure-storage-blob-java/SKILL.md.
How to use
Ask the Agent for a task containing a relevant trigger, such as “Use the Azure Blob Storage Java SDK to upload a file” or “Implement blob streaming download.” The skill recommends com.azure:azure-storage-blob version 12.33.0 and shows authentication choices for SAS, connection strings, and DefaultAzureCredential. Java version, project build commands, and Azure resource provisioning steps are not documented in the skill.