Cloud Storage 버킷의 기본 액세스 제어 목록(ACL)을 삭제합니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
C++
자세한 내용은 Cloud Storage C++ API 참조 문서를 확인하세요.
namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name,
std::string const& entity) {
google::cloud::Status status =
client.DeleteDefaultObjectAcl(bucket_name, entity);
if (!status.ok()) throw std::runtime_error(status.message());
std::cout << "Deleted ACL entry for " << entity << " in bucket "
<< bucket_name << "\n";
}
C#
자세한 내용은 Cloud Storage C# API 참조 문서를 확인하세요.
using Google.Cloud.Storage.V1;
using System;
using System.Linq;
public class RemoveBucketDefaultOwnerSample
{
public void RemoveBucketDefaultOwner(
string bucketName = "your-unique-bucket-name",
string userEmail = "user@iam.gserviceaccount.com")
{
var storage = StorageClient.Create();
var bucket = storage.GetBucket(bucketName, new GetBucketOptions { Projection = Projection.Full });
if (bucket.DefaultObjectAcl == null)
{
Console.WriteLine("No default owner to remove");
}
else
{
bucket.DefaultObjectAcl = bucket.DefaultObjectAcl.Where(acl => !(acl.Entity == $"user-{userEmail}" && acl.Role == "OWNER")).ToList();
var updatedBucket = storage.UpdateBucket(bucket);
Console.WriteLine($"Removed user {userEmail} from bucket {bucketName}.");
}
}
}
Go
자세한 내용은 Cloud Storage Go API 참조 문서를 확인하세요.
import (
"context"
"fmt"
"cloud.google.com/go/storage"
)
// deleteDefaultBucketACL removes default ACL from a bucket.
func removeBucketDefaultOwner(bucket string, entity storage.ACLEntity) error {
// bucket := "bucket-name"
// entity := storage.AllUsers
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil {
return fmt.Errorf("storage.NewClient: %v", err)
}
defer client.Close()
acl := client.Bucket(bucket).DefaultObjectACL()
if err := acl.Delete(ctx, entity); err != nil {
return fmt.Errorf("ACLHandle.Delete: %v", err)
}
return nil
}
Java
자세한 내용은 Cloud Storage Java API 참조 문서를 확인하세요.
import com.google.cloud.storage.Acl.User;
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
public class RemoveBucketDefaultOwner {
public static void removeBucketDefaultOwner(String bucketName, String userEmail) {
// The ID of your GCS bucket
// String bucketName = "your-unique-bucket-name";
// The email of the user you wish to remove as a default owner
// String userEmail = "someuser@domain.com"
Storage storage = StorageOptions.newBuilder().build().getService();
Bucket bucket = storage.get(bucketName);
User userToRemove = new User(userEmail);
boolean success = bucket.deleteDefaultAcl(userToRemove);
if (success) {
System.out.println("Removed user " + userEmail + " as an owner on " + bucketName);
} else {
System.out.println("User " + userEmail + " was not found");
}
}
}
Node.js
자세한 내용은 Cloud Storage Node.js API 참조 문서를 확인하세요.
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';
// The email address of the user to remove
// const userEmail = 'user-email-to-remove';
// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');
// Creates a client
const storage = new Storage();
async function removeBucketDefaultOwner() {
// Removes the user from the access control list of the bucket. You can use
// deleteAllUsers(), deleteDomain(), deleteProject(), deleteGroup(), and
// deleteAllAuthenticatedUsers() to remove access for different types of entities.
await storage.bucket(bucketName).acl.default.owners.deleteUser(userEmail);
console.log(`Removed user ${userEmail} from bucket ${bucketName}.`);
}
removeBucketDefaultOwner().catch(console.error);
PHP
자세한 내용은 Cloud Storage PHP API 참조 문서를 확인하세요.
use Google\Cloud\Storage\StorageClient;
/**
* Delete an entity from a bucket's default ACL.
*
* @param string $bucketName The name of your Cloud Storage bucket.
* (e.g. 'my-bucket')
* @param string $entity The entity for which to update access controls.
* (e.g. 'user-example@domain.com')
*/
function delete_bucket_default_acl(string $bucketName, string $entity): void
{
$storage = new StorageClient();
$bucket = $storage->bucket($bucketName);
$acl = $bucket->defaultAcl();
$acl->delete($entity);
printf('Deleted %s from gs://%s default ACL' . PHP_EOL, $entity, $bucketName);
}
Python
자세한 내용은 Cloud Storage Python API 참조 문서를 확인하세요.
from google.cloud import storage
def remove_bucket_default_owner(bucket_name, user_email):
"""Removes a user from the access control list of the given bucket's
default object access control list."""
# bucket_name = "your-bucket-name"
# user_email = "name@example.com"
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
# Reload fetches the current ACL from Cloud Storage.
bucket.acl.reload()
# You can also use `group`, `domain`, `all_authenticated` and `all` to
# remove access for different types of entities.
bucket.default_object_acl.user(user_email).revoke_read()
bucket.default_object_acl.user(user_email).revoke_write()
bucket.default_object_acl.user(user_email).revoke_owner()
bucket.default_object_acl.save()
print(
f"Removed user {user_email} from the default acl of bucket {bucket_name}."
)
Ruby
자세한 내용은 Cloud Storage Ruby API 참조 문서를 확인하세요.
# The ID of your GCS bucket
# bucket_name = "your-unique-bucket-name"
# email = "Google Cloud Storage ACL Entity email"
require "google/cloud/storage"
storage = Google::Cloud::Storage.new
bucket = storage.bucket bucket_name
bucket.default_acl.delete email
puts "Removed default ACL permissions for #{email} from #{bucket_name}"
다음 단계
다른 Google Cloud 제품의 코드 샘플을 검색하고 필터링하려면 Google Cloud 샘플 브라우저를 참조하세요.