@genoacms/adapter-gcp 0.7.1-fix.7 → 0.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,10 @@ declare const getObject: Adapter['getObject'];
|
|
3
3
|
declare const getPublicURL: Adapter['getPublicURL'];
|
4
4
|
declare const getSignedURL: Adapter['getSignedURL'];
|
5
5
|
declare const uploadObject: Adapter['uploadObject'];
|
6
|
+
declare const moveObject: Adapter['moveObject'];
|
6
7
|
declare const deleteObject: Adapter['deleteObject'];
|
7
8
|
declare const listDirectory: Adapter['listDirectory'];
|
8
9
|
declare const createDirectory: Adapter['createDirectory'];
|
9
|
-
|
10
|
+
declare const deleteDirectory: Adapter['deleteDirectory'];
|
11
|
+
declare const moveDirectory: Adapter['moveDirectory'];
|
12
|
+
export { getObject, getPublicURL, getSignedURL, uploadObject, moveObject, deleteObject, listDirectory, createDirectory, deleteDirectory, moveDirectory };
|
@@ -25,6 +25,11 @@ const uploadObject = async ({ bucket, name }, stream, options) => {
|
|
25
25
|
const file = bucketInstance.file(name);
|
26
26
|
await file.save(stream, options);
|
27
27
|
};
|
28
|
+
const moveObject = async ({ bucket, name }, newName) => {
|
29
|
+
const bucketInstance = getBucket(bucket);
|
30
|
+
const file = bucketInstance.file(name);
|
31
|
+
await file.move(newName);
|
32
|
+
};
|
28
33
|
const deleteObject = async ({ bucket, name }) => {
|
29
34
|
const bucketInstance = getBucket(bucket);
|
30
35
|
const file = bucketInstance.file(name);
|
@@ -58,4 +63,19 @@ const createDirectory = async ({ bucket, name }) => {
|
|
58
63
|
const file = bucketInstance.file(`${name}/.folderPlaceholder`);
|
59
64
|
await file.save('');
|
60
65
|
};
|
61
|
-
|
66
|
+
const deleteDirectory = async ({ bucket, name }) => {
|
67
|
+
const bucketInstance = getBucket(bucket);
|
68
|
+
const [files] = await bucketInstance.getFiles({ prefix: name });
|
69
|
+
const deletePromises = files.map(async (file) => await file.delete());
|
70
|
+
await Promise.all(deletePromises);
|
71
|
+
};
|
72
|
+
const moveDirectory = async ({ bucket, name }, newName) => {
|
73
|
+
const bucketInstance = getBucket(bucket);
|
74
|
+
const [files] = await bucketInstance.getFiles({ prefix: name });
|
75
|
+
const movePromises = files.map(async (file) => {
|
76
|
+
const newFileName = file.name.replace(name, newName);
|
77
|
+
await file.move(newFileName);
|
78
|
+
});
|
79
|
+
await Promise.all(movePromises);
|
80
|
+
};
|
81
|
+
export { getObject, getPublicURL, getSignedURL, uploadObject, moveObject, deleteObject, listDirectory, createDirectory, deleteDirectory, moveDirectory };
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@genoacms/adapter-gcp",
|
3
|
-
"version": "0.7.
|
3
|
+
"version": "0.7.8",
|
4
4
|
"type": "module",
|
5
5
|
"description": "Implementation of abstraction layer of GenoaCMS for GCP",
|
6
6
|
"repository": {
|
@@ -20,7 +20,7 @@
|
|
20
20
|
"provenance": true
|
21
21
|
},
|
22
22
|
"dependencies": {
|
23
|
-
"@genoacms/cloudabstraction": "^0.7.
|
23
|
+
"@genoacms/cloudabstraction": "^0.7.8",
|
24
24
|
"@google-cloud/firestore": "^7.1.0",
|
25
25
|
"@google-cloud/functions": "^3.4.0",
|
26
26
|
"@google-cloud/resource-manager": "^5.1.0",
|
@@ -36,6 +36,12 @@ const uploadObject: Adapter['uploadObject'] = async ({ bucket, name }, stream, o
|
|
36
36
|
await file.save(stream, options)
|
37
37
|
}
|
38
38
|
|
39
|
+
const moveObject: Adapter['moveObject'] = async ({ bucket, name }, newName) => {
|
40
|
+
const bucketInstance = getBucket(bucket)
|
41
|
+
const file = bucketInstance.file(name)
|
42
|
+
await file.move(newName)
|
43
|
+
}
|
44
|
+
|
39
45
|
const deleteObject: Adapter['deleteObject'] = async ({ bucket, name }) => {
|
40
46
|
const bucketInstance = getBucket(bucket)
|
41
47
|
const file = bucketInstance.file(name)
|
@@ -75,12 +81,32 @@ const createDirectory: Adapter['createDirectory'] = async ({ bucket, name }) =>
|
|
75
81
|
await file.save('')
|
76
82
|
}
|
77
83
|
|
84
|
+
const deleteDirectory: Adapter['deleteDirectory'] = async ({ bucket, name }) => {
|
85
|
+
const bucketInstance = getBucket(bucket)
|
86
|
+
const [files] = await bucketInstance.getFiles({ prefix: name })
|
87
|
+
const deletePromises = files.map(async (file) => await file.delete())
|
88
|
+
await Promise.all(deletePromises)
|
89
|
+
}
|
90
|
+
|
91
|
+
const moveDirectory: Adapter['moveDirectory'] = async ({ bucket, name }, newName) => {
|
92
|
+
const bucketInstance = getBucket(bucket)
|
93
|
+
const [files] = await bucketInstance.getFiles({ prefix: name })
|
94
|
+
const movePromises = files.map(async (file) => {
|
95
|
+
const newFileName = file.name.replace(name, newName)
|
96
|
+
await file.move(newFileName)
|
97
|
+
})
|
98
|
+
await Promise.all(movePromises)
|
99
|
+
}
|
100
|
+
|
78
101
|
export {
|
79
102
|
getObject,
|
80
103
|
getPublicURL,
|
81
104
|
getSignedURL,
|
82
105
|
uploadObject,
|
106
|
+
moveObject,
|
83
107
|
deleteObject,
|
84
108
|
listDirectory,
|
85
|
-
createDirectory
|
109
|
+
createDirectory,
|
110
|
+
deleteDirectory,
|
111
|
+
moveDirectory
|
86
112
|
}
|