Ripulitura dei caricamenti in più parti incompleti
Questa regola del ciclo di vita arresta tutti i caricamenti in più parti se i caricamenti non vengono completati entro un numero definito di giorni dopo l'avvio.
È possibile impostare le regole del ciclo di vita degli oggetti utilizzando la console web, l'API REST e gli strumenti di terze parti integrati con IBM Cloud Object Storage.
- Una nuova regola può essere aggiunta a un bucket nuovo o esistente in qualsiasi momento.
- Una regola esistente può essere modificata o disattivata.
Questi caricamenti incompleti non vengono visualizzati nella console, ma le parti caricate continuano ad accumulare costi di utilizzo e fatturazione. L'impostazione delle regole del ciclo di vita per eliminare automaticamente i caricamenti incompleti è responsabilità dell'utente.
Attributi delle regole di scadenza
Ogni regola di scadenza ha i seguenti attributi:
ID
Un ID della regola deve essere univoco all'interno della configurazione del ciclo di vita del bucket.
AbortIncompleteMultipartUpload
Il blocco AbortIncompleteMultipartUpload contiene i dettagli che regolano la cancellazione automatica dei caricamenti. Il blocco contiene un singolo campo DaysAfterInitiation.
Prefisso
Una stringa facoltativa verrà messa in corrispondenza con il prefisso del nome oggetto nel bucket. Una regola con un prefisso verrà applicata solo agli oggetti che corrispondono. È possibile utilizzare più regole per azioni diverse per prefissi diversi all'interno dello stesso bucket.
Condizione
Una regola può essere abilitata e disabilitata. Una regola è attiva solo quando è abilitata.
Configurazioni del ciclo di vita di esempio
Questa configurazione fa scadere tutti i caricamenti che non sono stati completati dopo 3 giorni.
<LifecycleConfiguration>
<Rule>
<ID>delete-after-3-days</ID>
<Filter />
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
È anche possibile combinare regole. Questa configurazione annulla i caricamenti inattivi dopo 5 giorni, archivia gli oggetti 90 giorni dopo la loro creazione e cancella gli oggetti con il prefisso foo/ dopo 180 giorni.
<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>
Utilizzo dell'API e degli SDK
È possibile gestire programmaticamente le regole del ciclo di vita utilizzando l'API REST o gli SDK IBM COS.
Guida di riferimento API REST
Questa implementazione dell'operazione PUT utilizza il parametro di query lifecycle per configurare le impostazioni di ciclo di vita per il bucket. Questa operazione consente una singola definizione della politica del
ciclo di vita per un bucket. La politica viene definita come un insieme di regole composto dai seguenti parametri: ID, Status, Filter ed Expiration.
Gli utenti Cloud IAM devono avere il ruolo Writer per aggiungere un criterio del ciclo di vita da un bucket.
Gli utenti dell'infrastruttura classica devono avere i permessi Owner sul bucket per aggiungere un criterio del ciclo di vita da un bucket.
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L'hash base64 codificato a 128 bit di MD5 del payload, utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il transito. |
x-amz-checksum-crc32 |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32 dell'oggetto. |
x-amz-checksum-crc32c |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32C dell'oggetto. |
x-amz-checksum-crc64nvme |
Stringa | Questa intestazione è il checksum Base64 codificato a 64 bit CRC64NVME dell'oggetto. Il checksum di CRC64NVME è sempre un checksum completo dell'oggetto. |
x-amz-checksum-sha1 |
Stringa | Questa intestazione è il digest Base64 codificato a 160 bit SHA1 dell'oggetto. |
x-amz-checksum-sha256 |
Stringa | Questa intestazione è il digest Base64 codificato a 256 bit SHA256 dell'oggetto. |
Un'intestazione Content-MD5 o un'intestazione checksum (comprese x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, o x-amz-checksum-sha256)
è richiesta come controllo di integrità per il payload.
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
LifecycleConfiguration |
Container | Rule |
Nessuno | Limite 1. |
Rule |
Container | ID, Status, Filter, AbortIncompleteMultipartUpload |
LifecycleConfiguration |
Limite 1000. |
ID |
Stringa | Nessuno | Rule |
Deve essere composto da (a-z,A-Z0-9) e dai seguenti simboli: ! _ . * ' ( ) - |
Filter |
Stringa | Prefix |
Rule |
Deve contenere un elemento Prefix o essere chiuso automaticamente (<Filter />). |
Prefix |
Stringa | Nessuno | Filter |
La regola si applica a tutti gli oggetti con le chiavi che corrispondono a questo prefisso. |
AbortIncompleteMultipartUpload |
Container |
DaysAfterInitiation |
Rule |
Limite 1. |
DaysAfterInitiation |
Numero interno non negativo | Nessuno | AbortIncompleteMultipartUpload |
Deve essere un valore maggiore di 0. |
Il corpo della richiesta deve contenere un blocco XML con lo schema trattato nella tabella (vedi Esempio 1).
<LifecycleConfiguration>
<Rule>
<ID>delete-after-3-days</ID>
<Filter />
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
Sintassi
PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
Richiesta di esempio
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>
Esempio di codice da utilizzare con l'SDK COS NodeJS
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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
});
Esempio di codice da utilizzare con l'SDK COS Python
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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))
Esempio di codice da utilizzare con l'SDK COS Java
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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;
}
}
Esamina la configurazione del ciclo di vita di un bucket, inclusa la scadenza
Questa implementazione dell'operazione GET utilizza il parametro di query lifecycle per esaminare le impostazioni di ciclo di vita per il bucket. Verrà restituita una risposta 404 HTTP se non sono presenti
configurazioni del ciclo di vita.
Gli utenti Cloud IAM devono avere il ruolo Reader per esaminare un criterio del ciclo di vita da un bucket.
Gli utenti dell'infrastruttura classica devono avere i permessi Read sul bucket per esaminare un criterio del ciclo di vita da un bucket.
Sintassi
GET https://{endpoint}/{bucket}?lifecycle # path style
GET https://{bucket}.{endpoint}?lifecycle # virtual host style
Richiesta dell'intestazione di esempio
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
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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))
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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;
}
}
Elimina la configurazione del ciclo di vita di un bucket, inclusa la scadenza
Questa implementazione dell'operazione DELETE utilizza il parametro di query lifecycle per esaminare le impostazioni di ciclo di vita per il bucket. Tutte le regole del ciclo di vita associate al bucket verranno eliminate.
Le transizioni definite dalle regole non verranno più eseguite per i nuovi oggetti. Tuttavia, le regole di transizione esistenti verranno conservate per gli oggetti che sono stati già scritti nel bucket prima dell'eliminazione delle regole.
Le regole di scadenza non esisteranno più. Verrà restituita una risposta 404 HTTP se non sono presenti configurazioni del ciclo di vita.
Gli utenti Cloud IAM devono disporre del ruolo di scrittore (Writer) per rimuovere una politica del ciclo di vita da un bucket.
Gli utenti dell'infrastruttura classica devono disporre almeno delle autorizzazioni di proprietario (Owner) per il bucket per rimuovere una politica del ciclo di vita da un bucket.
Sintassi
DELETE https://{endpoint}/{bucket}?lifecycle # path style
DELETE https://{bucket}.{endpoint}?lifecycle # virtual host style
Richiesta dell'intestazione di esempio
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
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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
});
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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))
L'utilizzo degli SDK IBM Cloud® Object Storage richiede solo il richiamo delle funzioni appropriate con i parametri corretti e la configurazione appropriata.
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;
}
}
Passi successivi
La scadenza è solo uno dei molti concetti del ciclo di vita disponibili per IBM Cloud Object Storage. Ciascuna delle nozioni trattate in questa panoramica può essere approfondita nella sezione PiattaformaIBM Cloud.