불완전한 다중 파트 업로드 정리
이 수명 주기 룰은 시작 후 정의된 일 수 내에 업로드가 완료되지 않으면 다중 파트 업로드를 중지합니다.
웹 콘솔, REST API 및 IBM Cloud Object Storage 와 통합된 타사 도구를 사용하여 개체에 대한 수명 주기 규칙을 설정할 수 있습니다.
- 새 규칙은 언제든지 새 버킷이나 기존 버킷에 추가할 수 있습니다.
- 기존 규칙을 수정하거나 비활성화할 수 있습니다.
이러한 완료되지 않은 업로드는 콘솔에 표시되지 않지만 업로드된 파트는 계속해서 사용량 및 비용 청구 비용을 발생시킵니다. 완료되지 않은 업로드를 자동으로 삭제하도록 수명 주기 규칙을 설정하는 것은 사용자의 책임입니다.
만기 규칙의 속성
각 만기 규칙에는 다음 속성이 있습니다.
ID
규칙의 ID는 버킷의 라이프사이클 구성 내에서 고유해야 합니다.
AbortIncompleteMultipartUpload
AbortIncompleteMultipartUpload 블록에는 업로드 자동 취소에 관한 세부 정보가 포함되어 있습니다. 블록에는 단일 필드 DaysAfterInitiation 가 포함되어 있습니다.
접두부
버킷에 있는 오브젝트 이름의 접두부와 일치할 선택적 문자열입니다. 접두부가 있는 규칙은 일치하는 오브젝트에만 적용됩니다. 동일한 버킷 내에서 접두사마다 다른 작업에 대해 여러 규칙을 사용할 수 있습니다.
상태
규칙은 사용 또는 사용 안함으로 설정할 수 있습니다. 규칙은 사용으로 설정된 경우에만 활성입니다.
샘플 라이프사이클 구성
이 구성은 3일후에 완료되지 않은 모든 업로드를 만료합니다.
<LifecycleConfiguration>
<Rule>
<ID>delete-after-3-days</ID>
<Filter />
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
규칙을 결합할 수도 있습니다. 이 구성은 5일 후에 비활성 업로드를 취소하고, 생성 후 90일 후에 모든 개체를 보관하며, 180일 후에 접두사가 foo/ 인 모든 개체를 삭제합니다.
<LifecycleConfiguration>
<Rule>
<ID>archive-first</ID>
<Filter />
<Status>Enabled</Status>
<Transition>
<Days>90</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
<Rule>
<ID>then-delete</ID>
<Filter>
<Prefix>foo/</Prefix>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>180</Days>
</Expiration>
</Rule>
<Rule>
<ID>delete-after-3-days</ID>
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
API 및 SDK 사용
REST API 또는 IBM COS SDK를 사용하여 수명 주기 규칙을 프로그래밍 방식으로 관리할 수 있습니다.
REST API 참조
이 PUT 오퍼레이션 구현은 lifecycle 조회 매개변수를 사용하여 버킷의 라이프사이클 설정을 지정합니다. 이 오퍼레이션은 버킷에 대한 단일 라이프사이클 정책 정의를 허용합니다. 정책은 다음 매개변수로 구성된 규칙 세트로 정의됩니다. ID, Status, Filter 및 Expiration.
Cloud IAM 사용자가 버킷에서 수명 주기 정책을 추가하려면 Writer 역할이 있어야 합니다.
클래식 인프라 사용자는 버킷에서 수명 주기 정책을 추가하려면 버킷에 대한 Owner 권한이 있어야 합니다.
| 헤더 | 유형 | 설명 |
|---|---|---|
Content-MD5 |
문자열 | 페이로드의 base64 인코딩된 128비트 MD5 해시는 전송 중에 페이로드가 변경되지 않았는지 확인하기 위한 무결성 검사에 사용됩니다. |
x-amz-checksum-crc32 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32 체크섬입니다. |
x-amz-checksum-crc32c |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32C 체크섬입니다. |
x-amz-checksum-crc64nvme |
문자열 | 이 헤더는 개체의 Base64 인코딩된 64비트 CRC64NVME 체크섬입니다. CRC64NVME 체크섬은 항상 전체 객체 체크섬입니다. |
x-amz-checksum-sha1 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 160비트 SHA1 다이제스트입니다. |
x-amz-checksum-sha256 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 256비트 SHA256 다이제스트입니다. |
페이로드의 무결성 검사로 Content-MD5 헤더 또는 checksum 헤더( x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 또는 x-amz-checksum-sha256 포함)가 필요합니다.
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
LifecycleConfiguration |
컨테이너 | Rule |
없음 | 한계 1. |
Rule |
컨테이너 | ID, Status, Filter, AbortIncompleteMultipartUpload |
LifecycleConfiguration |
한계 1000. |
ID |
문자열 | 없음 | Rule |
(a-z,A-Z0-9)와 다음 기호로 구성되어야 합니다: ! _ . * ' ( ) - |
Filter |
문자열 | Prefix |
Rule |
Prefix 요소를 포함하거나 자체 닫아야 합니다 (<Filter />). |
Prefix |
문자열 | 없음 | Filter |
규칙은 이 접두부와 일치하는 키가 있는 모든 오브젝트에 적용됩니다. |
AbortIncompleteMultipartUpload |
Container |
DaysAfterInitiation |
Rule |
한계 1. |
DaysAfterInitiation |
음수가 아닌 정수 | 없음 | AbortIncompleteMultipartUpload |
0보다 큰 값이어야 합니다. |
요청의 본문에는 테이블에서 다루는 스키마가 포함된 XML 블록이 있어야 합니다(예 1 참조).
<LifecycleConfiguration>
<Rule>
<ID>delete-after-3-days</ID>
<Filter />
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
구문
PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
요청 예제
PUT /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
<LifecycleConfiguration>
<Rule>
<ID>delete-after-3-days</ID>
<Filter />
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
```{: caption="예
3. 오브젝트 라이프사이클 구성을 작성하기 위한 요청 헤더 샘플입니다." caption-side="bottom"}
**NodeJS COS SDK에서 사용하기 위한 코드 샘플**
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
```js {: codeblock}
var aws = require('ibm-cos-sdk');
var ep = new aws.Endpoint('s3.us-south.cloud-object-storage.appdomain.cloud');
var config = {
endpoint: ep,
apiKeyId: 'ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE',
ibmAuthEndpoint: 'https://iam.cloud.ibm.com/identity/token',
serviceInstanceId: 'crn:v1:bluemix:public:cloud-object-storage:global:a/<CREDENTIAL_ID_AS_GENERATED>:<SERVICE_ID_AS_GENERATED>::',
};
var s3 = new aws.S3(config);
var params = {
Bucket: 'STRING_VALUE', /* required */
LifecycleConfiguration: {
Rules: [ /* required */
{
Status: 'Enabled', /* required */
ID: 'OPTIONAL_STRING_VALUE',
Filter: {}, /* required */
AbortIncompleteMultipartUpload: {
DaysAfterInitiation: 'NUMBER_VALUE'
}
},
]
}
};
s3.putBucketLifecycleConfiguration(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Python COS SDK에서 사용하기 위한 코드 샘플
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
import sys
import ibm_boto3
from ibm_botocore.client import Config
api_key = "ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE"
service_instance_id = "85SAMPLE-eDOb-4NOT-bUSE-86nnnb31eaxx"
auth_endpoint = "https://iam.cloud.ibm.com/identity/token"
service_endpoint = "https://s3.us-south.cloud-object-storage.appdomain.cloud"
cos = ibm_boto3.resource('s3',
ibm_api_key_id=api_key,
ibm_service_instance_id=service_instance_id,
ibm_auth_endpoint=auth_endpoint,
config=Config(signature_version='oauth'),
endpoint_url=service_endpoint)
response = cos.Bucket('<name-of-bucket>').put_bucket_lifecycle_configuration(
Bucket='string',
LifecycleConfiguration={
'Rules': [
{
'Status': 'Enabled',
'Filter': {},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': <NUMBER_VALUE>
}
},
]
}
)
print("Bucket lifecyle: {0}".format(response))
Java COS SDK에서 사용하기 위한 코드 샘플
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
package com.ibm.cloud;
import java.sql.Timestamp;
import java.util.List;
import java.util.Arrays;
import com.ibm.cloud.objectstorage.ClientConfiguration;
import com.ibm.cloud.objectstorage.SDKGlobalConfiguration;
import com.ibm.cloud.objectstorage.auth.AWSCredentials;
import com.ibm.cloud.objectstorage.auth.AWSStaticCredentialsProvider;
import com.ibm.cloud.objectstorage.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.ibm.cloud.objectstorage.services.s3.AmazonS3;
import com.ibm.cloud.objectstorage.services.s3.AmazonS3ClientBuilder;
import com.ibm.cloud.objectstorage.services.s3.model.Bucket;
import com.ibm.cloud.objectstorage.services.s3.model.BucketLifecycleConfiguration;
import com.ibm.cloud.objectstorage.services.s3.model.ListObjectsRequest;
import com.ibm.cloud.objectstorage.services.s3.model.ObjectListing;
import com.ibm.cloud.objectstorage.services.s3.model.S3ObjectSummary;
import com.ibm.cloud.objectstorage.oauth.BasicIBMOAuthCredentials;
public class App
{
private static AmazonS3 _cosClient;
/**
* @param args
*/
public static void main(String[] args)
{
SDKGlobalConfiguration.IAM_ENDPOINT = "https://iam.cloud.ibm.com/identity/token";
String bucketName = "<sample-bucket-name>";
String api_key = "ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE";
String service_instance_id = "85SAMPLE-eDOb-4NOT-bUSE-86nnnb31eaxx"
String endpoint_url = "https://s3.us-south.cloud-object-storage.appdomain.cloud";
String storageClass = "us-south";
String location = "us";
_cosClient = createClient(api_key, service_instance_id, endpoint_url, location);
// Define a rule for expiring items in a bucket
int days_to_delete = 10;
BucketLifecycleConfiguration.Rule rule = new BucketLifecycleConfiguration.Rule()
.withId("Delete rule")
.withExpirationInDays(days_to_delete)
.withStatus(BucketLifecycleConfiguration.ENABLED);
rule.setFilter(new LifecycleFilter());
// Add the rule to a new BucketLifecycleConfiguration.
BucketLifecycleConfiguration configuration = new BucketLifecycleConfiguration()
.withRules(Arrays.asList(rule));
// Use the client to set the LifecycleConfiguration on the bucket.
_cosClient.setBucketLifecycleConfiguration(bucketName, configuration);
}
/**
* @param bucketName
* @param clientNum
* @param api_key
* @param service_instance_id
* @param endpoint_url
* @param location
* @return AmazonS3
*/
public static AmazonS3 createClient(String api_key, String service_instance_id, String endpoint_url, String location)
{
AWSCredentials credentials;
credentials = new BasicIBMOAuthCredentials(api_key, service_instance_id);
ClientConfiguration clientConfig = new ClientConfiguration().withRequestTimeout(5000);
clientConfig.setUseTcpKeepAlive(true);
AmazonS3 cosClient = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(new EndpointConfiguration(endpoint_url, location)).withPathStyleAccessEnabled(true)
.withClientConfiguration(clientConfig).build();
return cosClient;
}
}
만기를 포함해 버킷의 라이프사이클 구성 검토
이 GET 오퍼레이션 구현은 lifecycle 조회 매개변수를 사용하여 버킷의 라이프사이클 설정을 검토합니다. 라이프사이클 구성이 없는 경우 HTTP 404 응답이 리턴됩니다.
Cloud IAM 사용자가 버킷에서 수명 주기 정책을 검토하려면 Reader 역할이 있어야 합니다.
클래식 인프라 사용자는 버킷에서 수명 주기 정책을 검토하려면 버킷에 대한 Read 권한이 있어야 합니다.
구문
GET https://{endpoint}/{bucket}?lifecycle # path style
GET https://{bucket}.{endpoint}?lifecycle # virtual host style
헤더 요청 예
GET /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-Length: 305
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
var aws = require('ibm-cos-sdk');
var ep = new aws.Endpoint('s3.us-south.cloud-object-storage.appdomain.cloud');
var config = {
endpoint: ep,
apiKeyId: 'ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE',
ibmAuthEndpoint: 'https://iam.cloud.ibm.com/identity/token',
serviceInstanceId: 'crn:v1:bluemix:public:cloud-object-storage:global:a/<CREDENTIAL_ID_AS_GENERATED>:<SERVICE_ID_AS_GENERATED>::',
};
var s3 = new aws.S3(config);
var params = {
Bucket: 'STRING_VALUE' /* required */
};
s3.getBucketLifecycleConfiguration(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
import sys
import ibm_boto3
from ibm_botocore.client import Config
api_key = "ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE"
service_instance_id = "85SAMPLE-eDOb-4NOT-bUSE-86nnnb31eaxx"
auth_endpoint = "https://iam.cloud.ibm.com/identity/token"
service_endpoint = "https://s3.us-south.cloud-object-storage.appdomain.cloud"
cos = ibm_boto3.resource('s3',
ibm_api_key_id=api_key,
ibm_service_instance_id=service_instance_id,
ibm_auth_endpoint=auth_endpoint,
config=Config(signature_version='oauth'),
endpoint_url=service_endpoint)
response = cos.Bucket('<name-of-bucket>').get_bucket_lifecycle_configuration(
Bucket='string'
)
print("Bucket lifecyle: {0}".format(response))
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
package com.ibm.cloud;
import java.sql.Timestamp;
import java.util.List;
import java.util.Arrays;
import com.ibm.cloud.objectstorage.ClientConfiguration;
import com.ibm.cloud.objectstorage.SDKGlobalConfiguration;
import com.ibm.cloud.objectstorage.auth.AWSCredentials;
import com.ibm.cloud.objectstorage.auth.AWSStaticCredentialsProvider;
import com.ibm.cloud.objectstorage.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.ibm.cloud.objectstorage.services.s3.AmazonS3;
import com.ibm.cloud.objectstorage.services.s3.AmazonS3ClientBuilder;
import com.ibm.cloud.objectstorage.services.s3.model.Bucket;
import com.ibm.cloud.objectstorage.services.s3.model.BucketLifecycleConfiguration;
import com.ibm.cloud.objectstorage.services.s3.model.ListObjectsRequest;
import com.ibm.cloud.objectstorage.services.s3.model.ObjectListing;
import com.ibm.cloud.objectstorage.services.s3.model.S3ObjectSummary;
import com.ibm.cloud.objectstorage.oauth.BasicIBMOAuthCredentials;
public class App
{
private static AmazonS3 _cosClient;
/**
* @param args
*/
public static void main(String[] args)
{
SDKGlobalConfiguration.IAM_ENDPOINT = "https://iam.cloud.ibm.com/identity/token";
String bucketName = "<sample-bucket-name>";
String api_key = "ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE";
String service_instance_id = "85SAMPLE-eDOb-4NOT-bUSE-86nnnb31eaxx"
String endpoint_url = "https://s3.us-south.cloud-object-storage.appdomain.cloud";
String storageClass = "us-south";
String location = "us";
_cosClient = createClient(api_key, service_instance_id, endpoint_url, location);
// Use the client to read the configuration
BucketLifecycleConfiguration config = _cosClient.getBucketLifecycleConfiguration(bucketName);
System.out.println(config.toString());
}
/**
* @param bucketName
* @param clientNum
* @param api_key
* @param service_instance_id
* @param endpoint_url
* @param location
* @return AmazonS3
*/
public static AmazonS3 createClient(String api_key, String service_instance_id, String endpoint_url, String location)
{
AWSCredentials credentials;
credentials = new BasicIBMOAuthCredentials(api_key, service_instance_id);
ClientConfiguration clientConfig = new ClientConfiguration().withRequestTimeout(5000);
clientConfig.setUseTcpKeepAlive(true);
AmazonS3 cosClient = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(new EndpointConfiguration(endpoint_url, location)).withPathStyleAccessEnabled(true)
.withClientConfiguration(clientConfig).build();
return cosClient;
}
}
만기를 포함해 버킷의 라이프사이클 구성 삭제
이 DELETE 오퍼레이션 구현은 lifecycle 조회 매개변수를 사용하여 버킷의 라이프사이클 설정을 검토합니다. 버킷과 연관된 모든 라이프사이클 규칙이 삭제됩니다. 규칙으로 정의된 전이는 더 이상 새 오브젝트에 대해 발생하지 않습니다. 하지만 기존 전이 규칙은 규칙이 삭제되기 전에 버킷에 이미 작성된 오브젝트에 대해 유지됩니다. 만기 규칙이 더 이상 존재하지 않습니다. 라이프사이클
구성이 없는 경우 HTTP 404 응답이 리턴됩니다.
Cloud IAM 사용자에게 버킷에서 라이프사이클 정책을 제거할 수 있는 Writer 역할이 있어야 합니다.
클래식 인프라 사용자에게 버킷에서 라이프사이클 정책을 제거할 수 있는 버킷에 대한 Owner 권한이 있어야 합니다.
구문
DELETE https://{endpoint}/{bucket}?lifecycle # path style
DELETE https://{bucket}.{endpoint}?lifecycle # virtual host style
헤더 요청 예
DELETE /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-Length: 305
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
var aws = require('ibm-cos-sdk');
var ep = new aws.Endpoint('s3.us-south.cloud-object-storage.appdomain.cloud');
var config = {
endpoint: ep,
apiKeyId: 'ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE',
ibmAuthEndpoint: 'https://iam.cloud.ibm.com/identity/token',
serviceInstanceId: 'crn:v1:bluemix:public:cloud-object-storage:global:a/<CREDENTIAL_ID_AS_GENERATED>:<SERVICE_ID_AS_GENERATED>::',
};
var s3 = new aws.S3(config);
var params = {
Bucket: 'STRING_VALUE' /* required */
};
s3.deleteBucketLifecycleConfiguration(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
import sys
import ibm_boto3
from ibm_botocore.client import Config
api_key = "ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE"
service_instance_id = "85SAMPLE-eDOb-4NOT-bUSE-86nnnb31eaxx"
auth_endpoint = "https://iam.cloud.ibm.com/identity/token"
service_endpoint = "https://s3.us-south.cloud-object-storage.appdomain.cloud"
cos = ibm_boto3.resource('s3',
ibm_api_key_id=api_key,
ibm_service_instance_id=service_instance_id,
ibm_auth_endpoint=auth_endpoint,
config=Config(signature_version='oauth'),
endpoint_url=service_endpoint)
response = cos.Bucket('<name-of-bucket>').delete_bucket_lifecycle_configuration(
Bucket='string'
)
print("Bucket lifecyle: {0}".format(response))
IBM Cloud® Object Storage SDK를 사용하기 위해서는 올바른 매개변수 및 적절한 구성과 함께 적합한 함수를 호출해야 합니다.
package com.ibm.cloud;
import java.sql.Timestamp;
import java.util.List;
import java.util.Arrays;
import com.ibm.cloud.objectstorage.ClientConfiguration;
import com.ibm.cloud.objectstorage.SDKGlobalConfiguration;
import com.ibm.cloud.objectstorage.auth.AWSCredentials;
import com.ibm.cloud.objectstorage.auth.AWSStaticCredentialsProvider;
import com.ibm.cloud.objectstorage.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.ibm.cloud.objectstorage.services.s3.AmazonS3;
import com.ibm.cloud.objectstorage.services.s3.AmazonS3ClientBuilder;
import com.ibm.cloud.objectstorage.services.s3.model.Bucket;
import com.ibm.cloud.objectstorage.services.s3.model.BucketLifecycleConfiguration;
import com.ibm.cloud.objectstorage.services.s3.model.ListObjectsRequest;
import com.ibm.cloud.objectstorage.services.s3.model.ObjectListing;
import com.ibm.cloud.objectstorage.services.s3.model.S3ObjectSummary;
import com.ibm.cloud.objectstorage.oauth.BasicIBMOAuthCredentials;
public class App
{
private static AmazonS3 _cosClient;
/**
* @param args
*/
public static void main(String[] args)
{
SDKGlobalConfiguration.IAM_ENDPOINT = "https://iam.cloud.ibm.com/identity/token";
String bucketName = "<sample-bucket-name>";
String api_key = "ZRZDoNoUseOLL7bRO8SAMPLEHPUzUL_-fsampleyYE";
String service_instance_id = "85SAMPLE-eDOb-4NOT-bUSE-86nnnb31eaxx"
String endpoint_url = "https://s3.us-south.cloud-object-storage.appdomain.cloud";
String storageClass = "us-south";
String location = "us";
_cosClient = createClient(api_key, service_instance_id, endpoint_url, location);
// Delete the configuration.
_cosClient.deleteBucketLifecycleConfiguration(bucketName);
// Verify that the configuration has been deleted by attempting to retrieve it.
config = _cosClient.getBucketLifecycleConfiguration(bucketName);
String s = (config == null) ? "Configuration has been deleted." : "Configuration still exists.";
System.out.println(s);
}
/**
* @param bucketName
* @param clientNum
* @param api_key
* @param service_instance_id
* @param endpoint_url
* @param location
* @return AmazonS3
*/
public static AmazonS3 createClient(String api_key, String service_instance_id, String endpoint_url, String location)
{
AWSCredentials credentials;
credentials = new BasicIBMOAuthCredentials(api_key, service_instance_id);
ClientConfiguration clientConfig = new ClientConfiguration().withRequestTimeout(5000);
clientConfig.setUseTcpKeepAlive(true);
AmazonS3 cosClient = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(new EndpointConfiguration(endpoint_url, location)).withPathStyleAccessEnabled(true)
.withClientConfiguration(clientConfig).build();
return cosClient;
}
}
```{: caption="예
3. 라이프사이클 구성의 삭제를 보여주는 코드 샘플입니다." caption-side="bottom"}
## 다음 단계 {: #lifecycle-mpu-next-steps}
만기는 IBM Cloud Object Storage에 사용 가능한 많은 라이프사이클 개념 중 하나입니다.
이 개요에서 다룬 각 개념은 다음 링크에서 자세히 살펴볼 수 있습니다
[IBM Cloud 플랫폼](https://cloud.ibm.com/).
<!-- v2.4.10 : caits-prod-app-clouddocs_cloud-docs-cloud-object-storage_20250821T192521-3_en_ko -->