Simple S3-like server for development purposes, written in Go
1package main
2
3import "encoding/xml"
4
5// https://docs.aws.amazon.com/AmazonS3/latest/API/API_Bucket.html
6type Bucket struct {
7 Name string `xml:"Name"`
8 CreationDate string `xml:"CreationDate"`
9}
10
11// https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html
12type Object struct {
13 Key string `xml:"Key"`
14 LastModified string `xml:"LastModified"`
15 // ETag
16 Size int64 `xml:"Size"`
17 // StorageClass
18}
19
20type Buckets struct {
21 Buckets []Bucket `xml:"Bucket"`
22}
23
24// https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html
25type ListAllMyBucketsResult struct {
26 XMLName xml.Name `xml:"ListAllMyBucketsResult"`
27 Buckets Buckets `xml:"Buckets"`
28}
29
30// https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html
31type ListBucketResult struct {
32 XMLName xml.Name `xml:"ListBucketResult"`
33 Name string `xml:"Name"`
34 Prefix string `xml:"Prefix"`
35 KeyCount int64 `xml:"KeyCount"`
36 IsTruncated bool `xml:"IsTruncated"`
37 Contents []Object `xml:"Contents"`
38}