Vai al contenuto principale

S3 APIs

Intro

Il gateway S3 di Cubbit supporta la maggior parte delle API RESTful di AWS S3 utilizzate dagli SDK di AWS (come aws-sdk-js, aws-sdk-go, ecc.), dall'interfaccia ufficiale a linea di comando di AWS e da tutti i client compatibili con S3.

Ciò implica che i suddetti strumenti possono essere utilizzati con Cubbit semplicemente configurandoli in modo che utilizzino l'endpoint giusto, ovvero https://s3.cubbit.eu. Ad esempio, in questa documentazione si possono trovare istruzioni su come configurare la CLI di AWS.

Le sezioni seguenti descrivono a grandi linee le funzionalità attualmente supportate e la loro aderenza alle specifiche originali di AWS S3. L'ultima sezione fornisce una visione dettagliata dei metodi API supportati.

Gestione bucket

Creare e cancellare nuovi bucket è supportato, così come elencare il loro contenuto.

Gestione oggetti

Caricare, scaricare, copiare e cancellare oggetti sono operazioni pienamente supportate.

Multipart Upload​

I Multipart Upload sono del tutto supportati. Maggiori informazioni su multipart upload sono accessibili qui.

Versioning​

Il Versioning può essere attivato su un bucket e può essere sospeso. Tutte le operazioni relative a oggetti versionati, come creare nuove versioni, elencarle o cancellarle sono supportate. Maggiori informazioni su bucket versioning sono accessibili qui.

Object Lock

La feature Object Lock è pienamente supportata. La seguente tabella riassume i tipi di lock.

Tipo di LockModalitàSupportato
Legal Hold-Yes
Object RetentionCOMPLIANCEYes
Object RetentionGOVERNANCEYes

ACL

Le API di ACL API sono supportate.

Il beneficiario può essere uno dei seguenti:

  • un utente (tramite il suo ID o la sua email)
  • un gruppo predefinito

I gruppi predefiniti supportati sono:

  • AllUsers
  • AuthenticatedUsers

Si noti inoltre che:

  • le operazioni di lettura e scrittura non sono ancora supportate in uno scenario di public-read o public-read-write
  • l'implementazione di questi gruppi potrebbe cambiare leggermente in futuro.

Sono consentite le seguenti canned ACL

  • private
  • public-read (con le limitazioni summenzionate)
  • public-read-write (con le limitazioni summenzionate)
  • authenticated-read
  • bucket-owner-read
  • bucket-owner-full-control

Maggiori informazioni sono disponibili qui.

Lifecycle Configuration​

La funzione Lifecycle Configuration è parzialmente supportata.

È consentita una sola regola di configurazione. L'unica regola di configurazione supportata è NoncurrentVersionExpiration senza filtri.

Maggiori informazioni sono disponibili qui.

Bucket Policy​

Non supportata.

Object Tagging​

Supportiamo le API principali di Object Tagging per gestire i tag su oggetti S3 individuali:

  • PutObjectTagging: Assegna o sostituisci tutti i tag su un oggetto esistente.
  • GetObjectTagging: Ottieni tutti i tag associati a un oggetto specifico.
  • DeleteObjectTagging: Rimuovi tutti i tag da un oggetto specifico.

Preserviamo anche i tag quando gli oggetti vengono copiati utilizzando l'API di CopyObject.

Funzionalità di Object Tagging non supportate

Alcune specifiche funzionalità in alcune API ausiliare non sono ancora supportate:

  • ⚠️ Taggare durante l'upload: Non puoi inserire i tag inline durante richieste di PutObject o CreateMultipartUpload.
  • ⚠️ Ottenimento del numero di Tag: La risposta dell'API GetObject non include l'header x-amz-tagging-count.
  • ⚠️ Sovrascrittura dei tag durante la copia: Non puoi sovrascrivere o sostituire tag tramite l'API CopyObject. Solo la preservazione dei tag è supportata.
nota

Alcuni bucket legacy creati prima che l'object tagging fosse disponibile potrebbero non supportare le funzionalità di tagging at all. Se ti capita di riscontrare errori, assicurati che il bucket utilizzato supporti l'object tagging.

Bucket Tagging​

Non supportata.

Object Lifecycle​

Non supportata.

API Compatibility Table

MetodoSupportoNote
AbortMultipartUploadYes
CompleteMultipartUploadYes
CopyObjectYes
CreateBucketYes
CreateMultipartUpload
DeleteBucketYes
DeleteBucketAnalyticsConfigurationNo
DeleteBucketCorsNo
DeleteBucketEncryptionNo
DeleteBucketIntelligentTieringConfigurationNo
DeleteBucketInventoryConfigurationNo
DeleteBucketLifecycle
DeleteBucketMetricsConfigurationNo
DeleteBucketOwnershipControlsYes
DeleteBucketPolicyNo
DeleteBucketReplicationNo
DeleteBucketTaggingNo
DeleteBucketWebsiteNo
DeleteObjectYes
DeleteObjectsYes
DeleteObjectTaggingYesPotrebbe non essere disponibile per alcuni Bucket
DeletePublicAccessBlockNo
GetBucketAccelerateConfigurationNo
GetBucketAclYes
GetBucketAnalyticsConfigurationNo
GetBucketCorsNo
GetBucketEncryptionNo
GetBucketIntelligentTieringConfigurationNo
GetBucketInventoryConfigurationNo
GetBucketLifecycleNo
GetBucketLifecycleConfigurationYesNoncurrentVersionExpiration only
GetBucketLocationYes
GetBucketLoggingNo
GetBucketMetricsConfigurationNo
GetBucketNotificationNo
GetBucketNotificationConfigurationNo
GetBucketOwnershipControlsYes
GetBucketPolicyNo
GetBucketPolicyStatusNo
GetBucketReplicationNo
GetBucketRequestPaymentNo
GetBucketTaggingNo
GetBucketVersioningYes
GetBucketWebsiteNo
GetObjectYes
GetObjectAclYes
GetObjectAttributesNo
GetObjectLegalHold
GetObjectLockConfigurationYes
GetObjectRetentionYes
GetObjectTaggingYesPotrebbe non essere disponibile per alcuni Bucket
GetObjectTorrentNo
GetPublicAccessBlockNo
HeadBucketYes
HeadObjectYes
ListBucketAnalyticsConfigurationsNo
ListBucketIntelligentTieringConfigurationsNo
ListBucketInventoryConfigurationsNo
ListBucketMetricsConfigurationsNo
ListBucketsYes
ListMultipartUploadsYes
ListObjectsYes
ListObjectsV2Yes
ListObjectVersionsYes
ListPartsYes
PutBucketAccelerateConfigurationNo
PutBucketAclYes
PutBucketAnalyticsConfigurationNo
PutBucketCorsNo
PutBucketEncryptionNo
PutBucketIntelligentTieringConfigurationNo
PutBucketInventoryConfigurationNo
PutBucketLifecycleNo
PutBucketLifecycleConfigurationYesNoncurrentVersionExpiration only
PutBucketLoggingNo
PutBucketMetricsConfigurationNo
PutBucketNotificationNo
PutBucketNotificationConfigurationNo
PutBucketOwnershipControlsYes
PutBucketPolicyNo
PutBucketReplicationNo
PutBucketRequestPaymentNo
PutBucketTaggingNo
PutBucketVersioningYes
PutBucketWebsiteNo
PutObjectYes
PutObjectAclYes
PutObjectLegalHoldYes
PutObjectLockConfigurationYes
PutObjectRetentionYes
PutObjectTaggingPotrebbe non essere disponibile per alcuni Bucket
PutPublicAccessBlockNo
RestoreObjectNo
SelectObjectContentNo
UploadPart
UploadPartCopy
WriteGetObjectResponseNo