Creating a Connection¶
This creates a connection so that you can interact with the server.
usingSystem;usingAmazon;usingAmazon.S3;usingAmazon.S3.Model;stringaccessKey="put your access key here!";stringsecretKey="put your secret key here!";AmazonS3Configconfig=newAmazonS3Config();config.ServiceURL="objects.dreamhost.com";AmazonS3Clients3Client=newAmazonS3Client(accessKey,secretKey,config);
Listing Owned Buckets¶
This gets a list of Buckets that you own. This also prints out the bucket name and creation date of each bucket.
ListBucketsResponseresponse=client.ListBuckets();foreach(S3Bucketbinresponse.Buckets){Console.WriteLine("{0}\t{1}",b.BucketName,b.CreationDate);}
The output will look something like this:
mahbuckat12011-04-21T18:05:39.000Zmahbuckat22011-04-21T18:05:48.000Zmahbuckat32011-04-21T18:07:18.000Z
Creating a Bucket¶
This creates a new bucket called
PutBucketRequestrequest=newPutBucketRequest();request.BucketName="my-new-bucket";client.PutBucket(request);
Listing a Bucket’s Content¶
This gets a list of objects in the bucket. This also prints out each object’s name, the file size, and last modified date.
ListObjectsRequestrequest=newListObjectsRequest();request.BucketName="my-new-bucket";ListObjectsResponseresponse=client.ListObjects(request);foreach(S3Objectoinresponse.S3Objects){Console.WriteLine("{0}\t{1}\t{2}",o.Key,o.Size,o.LastModified);}
The output will look something like this:
myphoto1.jpg2512622011-08-08T21:35:48.000Zmyphoto2.jpg2625182011-08-08T21:38:01.000Z
Deleting a Bucket¶
Note
The Bucket must be empty! Otherwise it won’t work!
DeleteBucketRequestrequest=newDeleteBucketRequest();request.BucketName="my-new-bucket";client.DeleteBucket(request);
Forced Delete for Non-empty Buckets¶
Creating an Object¶
This creates a file with the string
PutObjectRequestrequest=newPutObjectRequest();request.BucketName="my-new-bucket";request.Key="hello.txt";request.ContentType="text/plain";request.ContentBody="Hello World!";client.PutObject(request);
Change an Object’s ACL¶
This makes the object to be publicly readable, and to be private.
PutACLRequestrequest=newPutACLRequest();request.BucketName="my-new-bucket";request.Key="hello.txt";request.CannedACL=S3CannedACL.PublicRead;client.PutACL(request);PutACLRequestrequest2=newPutACLRequest();request2.BucketName="my-new-bucket";request2.Key="secret_plans.txt";request2.CannedACL=S3CannedACL.Private;client.PutACL(request2);
Download an Object (to a file)¶
This downloads the object and saves it in
GetObjectRequestrequest=newGetObjectRequest();request.BucketName="my-new-bucket";request.Key="perl_poetry.pdf";GetObjectResponseresponse=client.GetObject(request);response.WriteResponseStreamToFile("C:\\Users\\larry\\Documents\\perl_poetry.pdf");
Delete an Object¶
This deletes the object
DeleteObjectRequestrequest=newDeleteObjectRequest();request.BucketName="my-new-bucket";request.Key="goodbye.txt";client.DeleteObject(request);
Generate Object Download URLs (signed and unsigned)¶
This generates an unsigned download URL for . This works because we made public by setting the ACL above. This then generates a signed download URL for that will work for 1 hour. Signed download URLs will work for the time period even if the object is private (when the time period is up, the URL will stop working).
Note
The C# S3 Library does not have a method for generating unsigned URLs, so the following example only shows generating signed URLs.
GetPreSignedUrlRequestrequest=newGetPreSignedUrlRequest();request.BucketName="my-bucket-name";request.Key="secret_plans.txt";request.Expires=DateTime.Now.AddHours(1);request.Protocol=Protocol.HTTP;stringurl=client.GetPreSignedURL(request);Console.WriteLine(url);
The output of this will look something like:
http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
0 thoughts to “Cloudfrony download empty file”