FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
nodejs-storage/samples/addBucketConditionalBinding.js at main · googleapis/nodejs-storage · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
This repository was archived by the owner on Mar 3, 2026. It is now read-only.
googleapis
/
nodejs-storage
Public archive
Notifications
You must be signed in to change notification settings
Fork
394
Star
939
Code
Issues
21
Pull requests
0
Actions
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Security and quality
Insights
Expand file tree
Breadcrumbs
nodejs-storage
/
samples
/
addBucketConditionalBinding.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
100 lines (84 loc) · 3.13 KB
Breadcrumbs
nodejs-storage
/
samples
/
addBucketConditionalBinding.js
Copy path
File metadata and controls
100 lines (84 loc) · 3.13 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// Copyright 2020 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.
/**
* This application demonstrates how to perform basic operations on bucket and
* file Access Control Lists with the Google Cloud Storage API.
*
* For more information, see the README.md under /storage and the documentation
* at https://cloud.google.com/storage/docs.
*/
function
main
(
bucketName
=
'my-bucket'
,
roleName
=
'roles/storage.objectViewer'
,
title
=
'match-prefix'
,
description
=
'Applies to objects matching a prefix'
,
expression
=
'resource.name.startsWith("projects/_/buckets/bucket-name/objects/prefix-a-")'
,
members
=
'user:test@example.com'
)
{
members
=
members
.
split
(
','
)
;
// [START storage_add_bucket_conditional_iam_binding]
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';
// The role to grant
// const roleName = 'roles/storage.objectViewer';
// The members to grant the new role to
// const members = [
// 'user:jdoe@example.com',
// 'group:admins@example.com',
// ];
// Create a condition
// const title = 'Title';
// const description = 'Description';
// const expression = 'resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")';
// Imports the Google Cloud client library
const
{
Storage
}
=
require
(
'@google-cloud/storage'
)
;
// Creates a client
const
storage
=
new
Storage
(
)
;
async
function
addBucketConditionalBinding
(
)
{
// Get a reference to a Google Cloud Storage bucket
const
bucket
=
storage
.
bucket
(
bucketName
)
;
// Gets and updates the bucket's IAM policy
const
[
policy
]
=
await
bucket
.
iam
.
getPolicy
(
{
requestedPolicyVersion
:
3
}
)
;
// Set the policy's version to 3 to use condition in bindings.
policy
.
version
=
3
;
// Adds the new roles to the bucket's IAM policy
policy
.
bindings
.
push
(
{
role
:
roleName
,
members
:
members
,
condition
:
{
title
:
title
,
description
:
description
,
expression
:
expression
,
}
,
}
)
;
// Updates the bucket's IAM policy
await
bucket
.
iam
.
setPolicy
(
policy
)
;
console
.
log
(
`Added the following member(s) with role
${
roleName
}
to
${
bucketName
}
:`
)
;
members
.
forEach
(
member
=>
{
console
.
log
(
`
${
member
}
`
)
;
}
)
;
console
.
log
(
'with condition:'
)
;
console
.
log
(
` Title:
${
title
}
`
)
;
console
.
log
(
` Description:
${
description
}
`
)
;
console
.
log
(
` Expression:
${
expression
}
`
)
;
}
addBucketConditionalBinding
(
)
.
catch
(
console
.
error
)
;
// [END storage_add_bucket_conditional_iam_binding]
}
main
(
...
process
.
argv
.
slice
(
2
)
)
;
Back
|
FazBrowse Home
|
New Git URL