Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan PutBucketPolicydengan AWS SDK
Contoh kode berikut menunjukkan cara menggunakanPutBucketPolicy.
- Java
-
- SDK untuk Java 2.x
-
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di Repositori Contoh Kode AWS.
Menerapkan kebijakan bucket ke bucket direktori.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.PutBucketPolicyRequest;
import software.amazon.awssdk.services.s3.model.S3Exception;
import static com.example.s3.util.S3DirectoryBucketUtils.createDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.createS3Client;
import static com.example.s3.util.S3DirectoryBucketUtils.deleteDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.getAwsAccountId;
/**
* Sets the following bucket policy for the specified S3 directory bucket.
*<pre>
* {
* "Version":"2012-10-17",
* "Statement": [
* {
* "Sid": "AdminPolicy",
* "Effect": "Allow",
* "Principal": {
* "AWS": "arn:aws:iam::<ACCOUNT_ID>:root"
* },
* "Action": "s3express:*",
* "Resource": "arn:aws:s3express:us-west-2:<ACCOUNT_ID>:bucket/<DIR_BUCKET_NAME>
* }
* ]
* }
* </pre>
* This policy grants all S3 directory bucket actions to identities in the same account as the bucket.
*
* @param s3Client The S3 client used to interact with S3
* @param bucketName The name of the directory bucket
* @param policyText The policy text to be applied
*/
public static void putDirectoryBucketPolicy(S3Client s3Client, String bucketName, String policyText) {
logger.info("Setting policy on bucket: {}", bucketName);
logger.info("Policy: {}", policyText);
try {
PutBucketPolicyRequest policyReq = PutBucketPolicyRequest.builder()
.bucket(bucketName)
.policy(policyText)
.build();
s3Client.putBucketPolicy(policyReq);
logger.info("Bucket policy set successfully!");
} catch (S3Exception e) {
logger.error("Failed to set bucket policy: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
e.awsErrorDetails().errorCode(), e);
throw e;
}
}
Untuk daftar lengkap panduan pengembang AWS SDK dan contoh kode, lihatMengembangkan dengan Amazon S3 menggunakan AWS SDK. Topik ini juga mencakup informasi tentang memulai dan detail tentang versi SDK sebelumnya.