azure-sync
Azure storage file synchronizer
How to use it
There are two different ways to use this repo:
As a function, ex:
const config = 'your-config';const sync = ;const path = ;const chalk = ; const azure_conf = account: configazurestorageaccount accessKey: configazurestorageaccessKey container: name: configazurestoragecontainername cache: configazurestoragecontainercache policy: configazurecontainerpolicy progress: false service: configazureservice sources: dir: `` pattern: '/**/*' include: true verbose: false; ;
cache
option has a default value public, max-age=31536000
, if you want to override it, you can specify a cachall
like in the example below:
NOTE: const azure_conf = ... cache: match: "*" rule: "public, max-age=1234"
Via CLI:
AZURE_STORAGE_ACCOUNT=your-account AZURE_STORAGE_ACCESS_KEY=your-access-key (...) node ./node_modules/azure-sync/dist
Configuration
As a function
Call the module with this params structure. EX:
const config = account: "<your-azure-account>" accessKey: "<your-azure-access-key>" container: name: "test" cache: match: "path/to/your/file" "path/to/your/file2" rule: "no-cache, no-store, must-revalidate" match: "*" rule: "public, max-age=31536000" policy: publicAccessLevel : "blob" progress: true // defaults to false service: properties: Cors: CorsRules: MaxAgeInSeconds: 15 AllowedOrigins: "*" AllowedMethods: "GET" "PUT" "OPTIONS" AllowedHeaders: "origin" "x-ms-blob-type*" "Content-Type*" ExposedHeaders: "origin" "x-ms-blob-type*" "Content-Type*" overwrite: true // defaults to false sources: dir: `` pattern: '/**/*' include: true //include folder or not (ex: dist/file.js) dir: `` pattern: '/**/*' verbose: true // if you want to see the current uploaded file;
Via CLI
The env vars are mapped to the structure above like this:
const ENVIRONMENT_CONFIG = account: processenvAZURE_STORAGE_ACCOUNT accessKey: processenvAZURE_STORAGE_ACCESS_KEY container: name: processenvAZURE_SYNC_CONTAINER_NAME cache: processenvAZURE_SYNC_CONTAINER_CACHE policy: processenvAZURE_SYNC_CONTAINER_POLICY progress: processenvAZURE_SYNC_PROGRESS service: processenvAZURE_SYNC_SERVICE sources: processenvAZURE_SYNC_SOURCES verbose: processenvAZURE_SYNC_VERBOSE;
cache
, properties
, etc calling it as a function, then define account
& accessKey
via CLI and it will work ok)
You can use the function and the CLI invocation methods with no problem, the parameters will be deep-merged having priority on the ones defined via CLI (you can pass Cheers 🤖