mirror of
https://github.com/DullJZ/s3-balance.git
synced 2026-07-07 19:11:21 +08:00
Refactoring
This commit is contained in:
142
internal/api/models.go
Normal file
142
internal/api/models.go
Normal file
@@ -0,0 +1,142 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
"time"
|
||||
)
|
||||
|
||||
// S3 XML响应结构体定义
|
||||
|
||||
// ListBucketsResult 列出所有存储桶的响应
|
||||
type ListBucketsResult struct {
|
||||
XMLName xml.Name `xml:"ListAllMyBucketsResult"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Owner Owner `xml:"Owner"`
|
||||
Buckets Buckets `xml:"Buckets"`
|
||||
}
|
||||
|
||||
// Owner 所有者信息
|
||||
type Owner struct {
|
||||
ID string `xml:"ID"`
|
||||
DisplayName string `xml:"DisplayName"`
|
||||
}
|
||||
|
||||
// Buckets 存储桶列表
|
||||
type Buckets struct {
|
||||
Bucket []BucketInfo `xml:"Bucket"`
|
||||
}
|
||||
|
||||
// BucketInfo 存储桶信息
|
||||
type BucketInfo struct {
|
||||
Name string `xml:"Name"`
|
||||
CreationDate time.Time `xml:"CreationDate"`
|
||||
}
|
||||
|
||||
// ListBucketResult 列出存储桶内容的响应
|
||||
type ListBucketResult struct {
|
||||
XMLName xml.Name `xml:"ListBucketResult"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Name string `xml:"Name"`
|
||||
Prefix string `xml:"Prefix"`
|
||||
Marker string `xml:"Marker"`
|
||||
MaxKeys int `xml:"MaxKeys"`
|
||||
IsTruncated bool `xml:"IsTruncated"`
|
||||
Contents []ObjectInfo `xml:"Contents"`
|
||||
CommonPrefixes []CommonPrefix `xml:"CommonPrefixes,omitempty"`
|
||||
}
|
||||
|
||||
// ObjectInfo 对象信息
|
||||
type ObjectInfo struct {
|
||||
Key string `xml:"Key"`
|
||||
LastModified time.Time `xml:"LastModified"`
|
||||
ETag string `xml:"ETag"`
|
||||
Size int64 `xml:"Size"`
|
||||
StorageClass string `xml:"StorageClass"`
|
||||
Owner Owner `xml:"Owner"`
|
||||
}
|
||||
|
||||
// CommonPrefix 公共前缀
|
||||
type CommonPrefix struct {
|
||||
Prefix string `xml:"Prefix"`
|
||||
}
|
||||
|
||||
// InitiateMultipartUploadResult 初始化分片上传的响应
|
||||
type InitiateMultipartUploadResult struct {
|
||||
XMLName xml.Name `xml:"InitiateMultipartUploadResult"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Bucket string `xml:"Bucket"`
|
||||
Key string `xml:"Key"`
|
||||
UploadID string `xml:"UploadId"`
|
||||
}
|
||||
|
||||
// ListMultipartUploadsResult 列出分片上传的响应
|
||||
type ListMultipartUploadsResult struct {
|
||||
XMLName xml.Name `xml:"ListMultipartUploadsResult"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Bucket string `xml:"Bucket"`
|
||||
KeyMarker string `xml:"KeyMarker"`
|
||||
UploadIdMarker string `xml:"UploadIdMarker"`
|
||||
NextKeyMarker string `xml:"NextKeyMarker"`
|
||||
NextUploadIdMarker string `xml:"NextUploadIdMarker"`
|
||||
MaxUploads int `xml:"MaxUploads"`
|
||||
IsTruncated bool `xml:"IsTruncated"`
|
||||
Uploads []Upload `xml:"Upload"`
|
||||
CommonPrefixes []CommonPrefix `xml:"CommonPrefixes,omitempty"`
|
||||
}
|
||||
|
||||
// Upload 上传信息
|
||||
type Upload struct {
|
||||
Key string `xml:"Key"`
|
||||
UploadID string `xml:"UploadId"`
|
||||
Initiator Owner `xml:"Initiator"`
|
||||
Owner Owner `xml:"Owner"`
|
||||
StorageClass string `xml:"StorageClass"`
|
||||
Initiated time.Time `xml:"Initiated"`
|
||||
}
|
||||
|
||||
// ListPartsResult 列出分片的响应
|
||||
type ListPartsResult struct {
|
||||
XMLName xml.Name `xml:"ListPartsResult"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Bucket string `xml:"Bucket"`
|
||||
Key string `xml:"Key"`
|
||||
UploadID string `xml:"UploadId"`
|
||||
PartNumberMarker int `xml:"PartNumberMarker"`
|
||||
NextPartNumberMarker int `xml:"NextPartNumberMarker"`
|
||||
MaxParts int `xml:"MaxParts"`
|
||||
IsTruncated bool `xml:"IsTruncated"`
|
||||
Parts []Part `xml:"Part"`
|
||||
}
|
||||
|
||||
// Part 分片信息
|
||||
type Part struct {
|
||||
PartNumber int `xml:"PartNumber"`
|
||||
LastModified time.Time `xml:"LastModified"`
|
||||
ETag string `xml:"ETag"`
|
||||
Size int64 `xml:"Size"`
|
||||
}
|
||||
|
||||
// CompleteMultipartUpload 完成分片上传的请求
|
||||
type CompleteMultipartUpload struct {
|
||||
XMLName xml.Name `xml:"CompleteMultipartUpload"`
|
||||
Parts []Part `xml:"Part"`
|
||||
}
|
||||
|
||||
// CompleteMultipartUploadResult 完成分片上传的响应
|
||||
type CompleteMultipartUploadResult struct {
|
||||
XMLName xml.Name `xml:"CompleteMultipartUploadResult"`
|
||||
Xmlns string `xml:"xmlns,attr"`
|
||||
Location string `xml:"Location"`
|
||||
Bucket string `xml:"Bucket"`
|
||||
Key string `xml:"Key"`
|
||||
ETag string `xml:"ETag"`
|
||||
}
|
||||
|
||||
// ErrorResponse S3错误响应
|
||||
type ErrorResponse struct {
|
||||
XMLName xml.Name `xml:"Error"`
|
||||
Code string `xml:"Code"`
|
||||
Message string `xml:"Message"`
|
||||
Resource string `xml:"Resource"`
|
||||
RequestID string `xml:"RequestId"`
|
||||
}
|
||||
Reference in New Issue
Block a user