GetPreSignedUrlRequest Class

.NET Framework 4.5
 
 
 
Did this page help you?  Yes  No   Tell us about it...
The parameters to create a pre-signed URL to a bucket or object.

Inheritance Hierarchy

System.Object
  Amazon.Runtime.AmazonWebServiceRequest
    Amazon.S3.Model.GetPreSignedUrlRequest

Namespace: Amazon.S3.Model
Assembly: AWSSDK.dll
Version: 2.0.0.3

Syntax

C#
public class GetPreSignedUrlRequest : AmazonWebServiceRequest
         IRequestEvents

The GetPreSignedUrlRequest type exposes the following members

Constructors

  Name Description
Public Method GetPreSignedUrlRequest()

Properties

  Name Description
Public Property BucketName The name of the bucket to create a pre-signed url to, or containing the object.
Public Property ContentType A standard MIME type describing the format of the object data.
Public Property Expires The expiry date and time for the pre-signed url.
Public Property Key The key to the object for which a pre-signed url should be created.
Public Property Protocol The requested protocol (http/https) for the pre-signed url.
Public Property ResponseHeaderOverrides A set of response headers that should be returned with the pre-signed url creation response.
Public Property ServerSideEncryptionMethod Specifies the encryption used on the server to store the content.
Public Property Verb The verb for the pre-signed url.
Public Property VersionId Version id for the object that the pre-signed url will reference. If not set, the url will reference the latest version of the object.

Methods

  Name Description
Public Method IsSetExpires() Checks if Expires property is set.

Examples

The following examples show how to create various different pre-signed URLs.

The code sample shows a GetContents function. This will be referred to in subsequent samples to test out the generated URL.

GetContents function


public static string GetContents(string path)
{
    HttpWebRequest request = HttpWebRequest.Create(path) as HttpWebRequest;
    HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

    using (Stream stream = response.GetResponseStream())
    using (StreamReader reader = new StreamReader(stream))
    {
        return reader.ReadToEnd();
    }
}
        
        

The first example creates a URL that will allow a third party to retrieve an object from S3 for a period of 5 minutes.

GetPreSignedURL sample 1


// Create a client
AmazonS3Client client = new AmazonS3Client();

// Create a CopyObject request
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
    BucketName = "SampleBucket",
    Key = "Item1",
    Expires = DateTime.Now.AddMinutes(5)
};

// Get path for request
string path = client.GetPreSignedURL(request);

// Test by getting contents
string contents = GetContents(path);

                

The following example creates a URL that will allow a third party to retrieve an object from S3 for a period of 5 minutes, and it also sets the headers to specific content, caching and encoding values.

GetPreSignedURL sample 2


// Create a client
AmazonS3Client client = new AmazonS3Client();

// Create a CopyObject request
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
    BucketName = "SampleBucket",
    Key = "Item1",
    Expires = DateTime.Now.AddMinutes(5)
};
request.ResponseHeaderOverrides.ContentType = "text/xml+zip";
request.ResponseHeaderOverrides.ContentDisposition = "attachment; filename=dispName.pdf";
request.ResponseHeaderOverrides.CacheControl = "No-cache";
request.ResponseHeaderOverrides.ContentLanguage = "mi, en";
request.ResponseHeaderOverrides.Expires = "Thu, 01 Dec 1994 16:00:00 GMT";
request.ResponseHeaderOverrides.ContentEncoding = "x-gzip";

// Get path for request
string path = client.GetPreSignedURL(request);

// Test by getting contents
string contents = GetContents(path);

                

This example creates a URL that will allow a third party to list all objects in a specific bucket. This URL will also expire in 5 minutes.
The URL response will be the XML response for a ListBucket request.

GetPreSignedURL sample 3


// Create a client
AmazonS3Client client = new AmazonS3Client();

// Create a CopyObject request
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
    BucketName = "SampleBucket",
    Expires = DateTime.Now.AddMinutes(5)
};

// Get path for request
string path = client.GetPreSignedURL(request);

// Retrieve objects
string allObjects = GetContents(path);

                

This example creates a URL that will allow a third party to list all of the owner's buckets. This URL will also expire in 5 minutes.
The URL response will be the XML response for a ListBuckets request.

GetPreSignedURL sample 4


// Create a client
AmazonS3Client client = new AmazonS3Client();

// Create a CopyObject request
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
    Expires = DateTime.Now.AddMinutes(5)
};

// Get path for request
string path = client.GetPreSignedURL(request);

// Retrieve buckets
string allBuckets = GetContents(path);

                

This final example creates a URL that allows a third party to put an object, then uses it to upload sample content. The URL is set to expire in 10 days.

GetPreSignedURL sample 5


// Create a client
AmazonS3Client client = new AmazonS3Client();

// Create a CopyObject request
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
    BucketName = "SampleBucket",
    Key = "Item1",
    Verb = HttpVerb.PUT,
    Expires = DateTime.Now.AddDays(10)
};

// Get path for request
string path = client.GetPreSignedURL(request);

// Prepare data
byte[] data = UTF8Encoding.UTF8.GetBytes("Sample text.");

// Configure request
HttpWebRequest httpRequest = WebRequest.Create(path) as HttpWebRequest;
httpRequest.Method = "PUT";
httpRequest.ContentLength = data.Length;

// Write data to stream
Stream requestStream = httpRequest.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();

// Issue request
HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse;

                

Remarks

For more information, refer to: .
Required Parameters: BucketName, Expires
Optional Parameters: Key, VersionId, Verb: default is GET

Version Information

.NET Framework:
Supported in: 4.5, 4.0, 3.5

.NET for Windows Store apps:
Supported in: Windows 8

.NET for Windows Phone:
Supported in: Window Phone 8