-
Notifications
You must be signed in to change notification settings - Fork 370
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add ability to configure and utilize soft-delete and restore bu…
…ckets (#2566) * Adds support for the restore token feature * description fix * lint fix * fetch softDeleted bucket list & details fetch softDeleted bucket list & details * initial commit for bucket restore initial commit for bucket restore * fix missing license headers fix missing license headers * lint fix * test case bug fix * added restore bucket unit test cases * added restore bucket system test added restore bucket system test * lint fix * format format * system test fix
- Loading branch information
1 parent
740d30d
commit 25cdbb9
Showing
7 changed files
with
392 additions
and
133 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/** | ||
* Copyright 2024 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
function main(bucketName = 'my-bucket', generation = 123456789) { | ||
// [START storage_get_soft_deleted_bucket] | ||
/** | ||
* TODO(developer): Uncomment the following lines before running the sample. | ||
*/ | ||
// The ID of your GCS bucket | ||
// const bucketName = 'your-unique-bucket-name'; | ||
|
||
// The generation of the bucket to restore | ||
// const generation = 123456789; | ||
|
||
// Imports the Google Cloud client library | ||
const {Storage} = require('@google-cloud/storage'); | ||
|
||
// Creates a client | ||
const storage = new Storage(); | ||
|
||
async function getSoftDeletedBucket() { | ||
const options = { | ||
generation: generation, | ||
softDeleted: true, | ||
}; | ||
|
||
const [metadata] = await storage.bucket(bucketName).getMetadata(options); | ||
|
||
console.log(`Bucket: ${metadata.name}`); | ||
console.log(`Generation: ${metadata.generation}`); | ||
console.log(`SoftDeleteTime: ${metadata.softDeleteTime}`); | ||
console.log(`HardDeleteTime: ${metadata.hardDeleteTime}`); | ||
} | ||
|
||
getSoftDeletedBucket().catch(console.error); | ||
// [END storage_get_soft_deleted_bucket] | ||
} | ||
|
||
main(...process.argv.slice(2)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/** | ||
* Copyright 2024 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
function main() { | ||
// [START storage_list_soft_deleted_buckets] | ||
// Imports the Google Cloud client library | ||
const {Storage} = require('@google-cloud/storage'); | ||
|
||
// Creates a client | ||
const storage = new Storage(); | ||
|
||
async function listSoftDeletedBuckets() { | ||
const options = { | ||
softDeleted: true, | ||
}; | ||
|
||
const [buckets] = await storage.getBuckets(options); | ||
|
||
console.log('Buckets:'); | ||
buckets.forEach(bucket => { | ||
console.log(bucket.name); | ||
}); | ||
} | ||
|
||
listSoftDeletedBuckets().catch(console.error); | ||
// [END storage_list_soft_deleted_buckets] | ||
} | ||
|
||
main(...process.argv.slice(2)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/** | ||
* Copyright 2024 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
function main(bucketName = 'my-bucket', generation = 123456789) { | ||
// [START storage_restore_soft_deleted_bucket] | ||
/** | ||
* TODO(developer): Uncomment the following lines before running the sample. | ||
*/ | ||
// The ID of your GCS bucket | ||
// const bucketName = 'your-unique-bucket-name'; | ||
|
||
// The generation of the bucket to restore | ||
// const generation = 123456789; | ||
|
||
// Imports the Google Cloud client library | ||
const {Storage} = require('@google-cloud/storage'); | ||
|
||
// Creates a client | ||
const storage = new Storage(); | ||
|
||
async function restoreSoftDeletedBucket() { | ||
const options = { | ||
generation: generation, | ||
}; | ||
|
||
await storage.bucket(bucketName).restore(options); | ||
|
||
console.log(`Soft deleted bucket ${bucketName} was restored.`); | ||
} | ||
|
||
restoreSoftDeletedBucket().catch(console.error); | ||
// [END storage_restore_soft_deleted_bucket] | ||
} | ||
|
||
main(...process.argv.slice(2)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.