Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Condivisione di oggetti utilizzando presigned URLs
Per concedere un accesso limitato nel tempo agli oggetti memorizzati in locale su un Outpost senza aggiornare la policy del bucket, puoi utilizzare un URL prefirmato. Con presigned URLs, in qualità di proprietario del bucket puoi condividere oggetti con persone nel tuo cloud privato virtuale (VPC) o concedere loro la possibilità di caricare o eliminare oggetti.
Quando crei un URL predefinito utilizzando AWS SDKs o il AWS Command Line Interface (AWS CLI), associ l'URL a un'azione specifica. Puoi concedere un accesso limitato nel tempo all'URL prefirmato anche scegliendo una scadenza personalizzata che può essere di appena 1 secondo e fino a 7 giorni. Quando condividi l'URL prefirmato, l'utente del VPC può eseguire l'azione incorporata nell'URL come se fosse l'utente di firma originale. Una volta raggiunta la scadenza, l'URL non funzionerà più.
Quando crei un URL prefirmato, devi fornire le credenziali di sicurezza e specificare quanto segue:
-
Un nome della risorsa Amazon (ARN) del punto di accesso per il bucket S3 su Outposts.
-
Una chiave oggetto
-
Un metodo HTTP (GET
per scaricare gli oggetti)
-
Una data e un'ora di scadenza
Un URL prefirmato è valido solo per la durata specificata. In altre parole, è necessario avviare l'operazione consentita dall'URL prima della sua data e ora di scadenza. L'URL prefirmato può essere utilizzato più volte, fino alla data e all'ora di scadenza. Se hai creato un URL prefirmato utilizzando un token temporaneo, l'URL scade insieme al token, anche se per l'URL è indicata una data di scadenza successiva.
Gli utenti nel cloud privato virtuale (VPC) che hanno accesso all'URL prefirmato possono caricare oggetti. Ad esempio, se il bucket contiene un video e sia il bucket che l'oggetto sono privati, è possibile condividere il video con altri generando un URL prefirmato. Poiché presigned URLs concede l'accesso ai tuoi bucket S3 on Outposts a chiunque disponga dell'URL, ti consigliamo di proteggerli in modo appropriato. URLs Per maggiori dettagli sulla protezione dei predefiniti, consulta. URLs Limitazione delle funzionalità degli URL prefirmati
Qualsiasi utente che disponga di credenziali di sicurezza valide può creare un URL prefirmato. Tuttavia, l'URL prefirmato deve essere creato da un utente dotato dell'autorizzazione per eseguire l'operazione su cui si basa l'URL. Per ulteriori informazioni, consulta Chi può creare un URL prefirmato.
Puoi generare un URL predefinito per condividere un oggetto in un bucket S3 on Outposts utilizzando and the. AWS SDKs AWS CLI Per maggiori informazioni, consulta i seguenti esempi.
Puoi utilizzare il AWS SDKs per generare un URL predefinito da fornire ad altri in modo che possano recuperare un oggetto.
Quando si utilizza il AWS SDKs per generare un URL predefinito, il tempo di scadenza massimo per un URL predefinito è di 7 giorni dal momento della creazione.
- Java
-
Nel seguente esempio viene generato un URL prefirmato che è possibile fornire ad altri utenti in modo che possano recuperare un oggetto da un bucket S3 su Outposts. Per ulteriori informazioni, consulta Utilizzo di presigned URLs per S3 su Outposts. Per utilizzare questo comando, sostituisci user input
placeholders
con le tue informazioni.
import com.amazonaws.AmazonServiceException;
import com.amazonaws.HttpMethod;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import java.io.IOException;
import java.net.URL;
import java.time.Instant;
public class GeneratePresignedURL {
public static void main(String[] args) throws IOException {
Regions clientRegion = Regions.DEFAULT_REGION;
String accessPointArn = "*** access point ARN ***
";
String objectKey = "*** object key ***
";
try {
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion(clientRegion)
.withCredentials(new ProfileCredentialsProvider())
.build();
// Set the presigned URL to expire after one hour.
java.util.Date expiration = new java.util.Date();
long expTimeMillis = Instant.now().toEpochMilli();
expTimeMillis += 1000 * 60 * 60;
expiration.setTime(expTimeMillis);
// Generate the presigned URL.
System.out.println("Generating pre-signed URL.");
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(accessPointArn, objectKey)
.withMethod(HttpMethod.GET)
.withExpiration(expiration);
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
System.out.println("Pre-Signed URL: " + url.toString());
} catch (AmazonServiceException e) {
// The call was transmitted successfully, but Amazon S3 couldn't process
// it, so it returned an error response.
e.printStackTrace();
} catch (SdkClientException e) {
// Amazon S3 couldn't be contacted for a response, or the client
// couldn't parse the response from Amazon S3.
e.printStackTrace();
}
}
}
- .NET
-
Nel seguente esempio viene generato un URL prefirmato che è possibile fornire ad altri utenti in modo che possano recuperare un oggetto da un bucket S3 su Outposts. Per ulteriori informazioni, consulta Utilizzo di presigned URLs per S3 su Outposts. Per utilizzare questo comando, sostituisci user input
placeholders
con le tue informazioni.
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
namespace Amazon.DocSamples.S3
{
class GenPresignedURLTest
{
private const string accessPointArn = "*** access point ARN ***
";
private const string objectKey = "*** object key ***
";
// Specify how long the presigned URL lasts, in hours.
private const double timeoutDuration = 12;
// Specify your bucket Region (an example Region is shown).
private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2
;
private static IAmazonS3 s3Client;
public static void Main()
{
s3Client = new AmazonS3Client(bucketRegion);
string urlString = GeneratePreSignedURL(timeoutDuration);
}
static string GeneratePreSignedURL(double duration)
{
string urlString = "";
try
{
GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest
{
BucketName = accessPointArn,
Key = objectKey,
Expires = DateTime.UtcNow.AddHours(duration)
};
urlString = s3Client.GetPreSignedURL(request1);
}
catch (AmazonS3Exception e)
{
Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
}
catch (Exception e)
{
Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
}
return urlString;
}
}
}
- Python
-
Nel seguente esempio viene generato un URL prefirmato per condividere un oggetto utilizzando l'SDK per Python (Boto3). Ad esempio, utilizza un client Boto3 e la funzione generate_presigned_url
per generare un URL prefirmato che ti consenta di eseguire il GET
di un oggetto.
import boto3
url = boto3.client('s3').generate_presigned_url(
ClientMethod='get_object',
Params={'Bucket': 'ACCESS_POINT_ARN', 'Key': 'OBJECT_KEY'},
ExpiresIn=3600)
Per ulteriori informazioni sull'utilizzo dell'SDK per Python (Boto3) per generare un URL prefirmato, consulta Python nella Documentazione di riferimento delle API di AWS SDK for Python (Boto) .
Il AWS CLI comando di esempio seguente genera un URL predefinito per un bucket S3 on Outposts. Per utilizzare questo comando, sostituisci user input
placeholders
con le tue informazioni.
Quando si utilizza il AWS CLI per generare un URL predefinito, il tempo di scadenza massimo per un URL predefinito è di 7 giorni dal momento della creazione.
aws s3 presign s3://arn:aws:s3-outposts:us-east-1
:111122223333
:outpost/op-01ac5d28a6a232904
/accesspoint/example-outpost-access-point
/mydoc.txt
--expires-in 604800
Per ulteriori informazioni, consulta presign in Riferimento ai comandi della AWS CLI .