-
Notifications
You must be signed in to change notification settings - Fork 47
/
container-set-properties-and-metadata.js
74 lines (54 loc) · 2 KB
/
container-set-properties-and-metadata.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const { BlobServiceClient } = require('@azure/storage-blob');
require('dotenv').config()
const connString = process.env.AZURE_STORAGE_CONNECTION_STRING;
if (!connString) throw Error('Azure Storage Connection string not found');
const blobServiceClient = BlobServiceClient.fromConnectionString(connString);
async function getContainerProperties(containerClient) {
const properties = await containerClient.getProperties();
console.log(containerClient.containerName + ' properties: ');
for (const property in properties) {
switch (property) {
// nested properties are stringified
case 'metadata':
//case 'objectReplicationRules':
console.log(` ${property}: ${JSON.stringify(properties[property])}`);
break;
default:
console.log(` ${property}: ${properties[property]}`);
break;
}
}
}
/*
const metadata = {
// values must be strings
lastFileReview: currentDate.toString(),
reviewer: `johnh`
}
*/
async function setContainerMetadata(containerClient, metadata) {
await containerClient.setMetadata(metadata);
}
async function main(blobServiceClient) {
// create container
const timestamp = Date.now();
const containerName = `container-set-properties-and-metadata-${timestamp}`;
console.log(`creating container ${containerName}`);
const containerOptions = {
access: 'container'
};
const { containerClient } = await blobServiceClient.createContainer(containerName, containerOptions);
console.log('container creation succeeded');
const currentDate = new Date().toLocaleDateString();
const containerMetadata = {
// values must be strings
lastFileReview: currentDate,
reviewer: `johnh`
}
await setContainerMetadata(containerClient, containerMetadata);
// properties including metadata
await getContainerProperties(containerClient);
}
main(blobServiceClient)
.then(() => console.log(`done`))
.catch((ex) => console.log(ex.message));