S3
MicroStack's S3 handler supports the core object storage operations with virtual-hosted and path-style access.
Supported Operations
- Buckets: Create, delete, list, head, get location, CORS, lifecycle, website, encryption, versioning, replication, tagging, policy, ACL, object lock configuration
- Objects: Put, get, delete, head, copy, multipart upload (create, upload part, complete, abort, list parts), tagging, retention, legal hold
- Batch: Delete objects (batch)
- Listing: List objects v1/v2, list object versions
Usage
var config = new AmazonS3Config
{
ServiceURL = "http://localhost:4566",
ForcePathStyle = true, // Required for MicroStack
};
var s3 = new AmazonS3Client(new BasicAWSCredentials("test", "test"), config);
// Create bucket
await s3.PutBucketAsync("my-bucket");
// Upload object
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = "my-bucket",
Key = "hello.txt",
ContentBody = "Hello, MicroStack!",
});
// Download object
var obj = await s3.GetObjectAsync("my-bucket", "hello.txt");
using var reader = new StreamReader(obj.ResponseStream);
Console.WriteLine(await reader.ReadToEndAsync());
MicroStack