Skip to content

Conversation

@azegallo
Copy link
Contributor

@azegallo azegallo commented Jul 26, 2025

I find myself wanting the ability to point VPK to specific folders in my blob storage.
I like to keep separation by platform personally, but I also just want a "content" storage for packages, images, etc. I'd rather not make another blob storage just for these packages and have to set up another CDN, track more secrets, etc.

AI generated:

This change adds a --folder parameter to both 'vpk upload az' and 'vpk download az' commands, allowing users to organize releases in subdirectories within their Azure blob containers.

Key changes:

  • Added Folder property to AzureUploadOptions and AzureDownloadOptions
  • Modified AzureRepository to prepend folder paths to all blob operations
  • Updated upload, download, and delete operations to work with folder paths
  • Retention policy (--keepMaxReleases) correctly handles files in folders
  • Release index and legacy release files are stored in the specified folder

Usage

This enables multiple applications or environments to share a single Azure container by using folders as isolated namespaces:

# Upload to a folder
vpk upload az --folder "releases/osx-x64" --account myaccount --key mykey --container mycontainer --releaseDir ./releases

# Download from a folder
vpk download az --folder "releases/osx-x64" --account myaccount --key mykey --container mycontainer

# UpdateManager configuration
var source = new SimpleWebSource("https://myaccount.blob.core.windows.net/mycontainer/releases/osx-x64/");

The implementation is backward compatible - existing deployments without folders continue to work as before.

Testing

  • All existing tests pass
  • Added comprehensive test coverage for folder functionality
  • Build succeeds with 0 warnings, 0 errors

This change adds a --folder parameter to both 'vpk upload az' and 'vpk download az' commands, allowing users to organize releases in subdirectories within their Azure blob containers.

Key changes:
- Added Folder property to AzureUploadOptions and AzureDownloadOptions
- Modified AzureRepository to prepend folder paths to all blob operations
- Updated upload, download, and delete operations to work with folder paths
- Retention policy (--keepMaxReleases) correctly handles files in folders
- Release index and legacy release files are stored in the specified folder

This enables multiple applications or environments to share a single Azure container by using folders as isolated namespaces. For example:
- vpk upload az --folder "releases/v1" ...
- vpk download az --folder "releases/v1" ...

The implementation is backward compatible - existing deployments without folders continue to work as before.
@azegallo azegallo force-pushed the feature/azure-folder-support branch from 5ca89e7 to bc2dde9 Compare July 26, 2025 03:33
@caesay caesay merged commit 1d5c984 into velopack:develop Sep 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants