mirror of
https://github.com/ferdzo/fs.git
synced 2026-04-04 20:56:25 +00:00
233 lines
6.7 KiB
Go
233 lines
6.7 KiB
Go
package models
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"time"
|
|
)
|
|
|
|
type ObjectManifest struct {
|
|
Bucket string `json:"bucket"`
|
|
Key string `json:"key"`
|
|
Size int64 `json:"size"`
|
|
ContentType string `json:"content_type"`
|
|
ETag string `json:"etag"`
|
|
Chunks []string `json:"chunks"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
}
|
|
type BucketManifest struct {
|
|
Name string `json:"name"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
OwnerID string `json:"owner_id"`
|
|
OwnerDisplayName string `json:"owner_display_name"`
|
|
Region string `json:"region"`
|
|
VersioningStatus string `json:"versioning_status"`
|
|
PublicAccessBlock bool `json:"public_access_block"`
|
|
}
|
|
|
|
type ListAllMyBucketsResult struct {
|
|
XMLName xml.Name `xml:"ListAllMyBucketsResult"`
|
|
Xmlns string `xml:"xmlns,attr"`
|
|
Owner BucketsOwner `xml:"Owner"`
|
|
Buckets BucketsElement `xml:"Buckets"`
|
|
}
|
|
|
|
type BucketsOwner struct {
|
|
ID string `xml:"ID"`
|
|
DisplayName string `xml:"DisplayName,omitempty"`
|
|
}
|
|
|
|
type BucketsElement struct {
|
|
Items []BucketItem `xml:"Bucket"`
|
|
}
|
|
|
|
type BucketItem struct {
|
|
Name string `xml:"Name"`
|
|
CreationDate string `xml:"CreationDate"`
|
|
}
|
|
|
|
type S3ErrorResponse struct {
|
|
XMLName xml.Name `xml:"Error"`
|
|
Code string `xml:"Code"`
|
|
Message string `xml:"Message"`
|
|
Resource string `xml:"Resource,omitempty"`
|
|
RequestID string `xml:"RequestId,omitempty"`
|
|
HostID string `xml:"HostId,omitempty"`
|
|
}
|
|
|
|
type ListBucketResult struct {
|
|
XMLName xml.Name `xml:"ListBucketResult"`
|
|
Xmlns string `xml:"xmlns,attr"`
|
|
|
|
Name string `xml:"Name"`
|
|
Prefix string `xml:"Prefix"`
|
|
KeyCount int `xml:"KeyCount"`
|
|
MaxKeys int `xml:"MaxKeys"`
|
|
IsTruncated bool `xml:"IsTruncated"`
|
|
|
|
Contents []Contents `xml:"Contents"`
|
|
CommonPrefixes []CommonPrefixes `xml:"CommonPrefixes,omitempty"`
|
|
}
|
|
|
|
type ListBucketResultV1 struct {
|
|
XMLName xml.Name `xml:"ListBucketResult"`
|
|
Xmlns string `xml:"xmlns,attr"`
|
|
|
|
Name string `xml:"Name"`
|
|
Prefix string `xml:"Prefix"`
|
|
Marker string `xml:"Marker,omitempty"`
|
|
NextMarker string `xml:"NextMarker,omitempty"`
|
|
Delimiter string `xml:"Delimiter,omitempty"`
|
|
MaxKeys int `xml:"MaxKeys"`
|
|
IsTruncated bool `xml:"IsTruncated"`
|
|
EncodingType string `xml:"EncodingType,omitempty"`
|
|
|
|
Contents []Contents `xml:"Contents,omitempty"`
|
|
CommonPrefixes []CommonPrefixes `xml:"CommonPrefixes,omitempty"`
|
|
}
|
|
|
|
type ListBucketResultV2 struct {
|
|
XMLName xml.Name `xml:"ListBucketResult"`
|
|
Xmlns string `xml:"xmlns,attr"`
|
|
|
|
Name string `xml:"Name"`
|
|
Prefix string `xml:"Prefix"`
|
|
Delimiter string `xml:"Delimiter,omitempty"`
|
|
MaxKeys int `xml:"MaxKeys"`
|
|
KeyCount int `xml:"KeyCount"`
|
|
IsTruncated bool `xml:"IsTruncated"`
|
|
ContinuationToken string `xml:"ContinuationToken,omitempty"`
|
|
NextContinuationToken string `xml:"NextContinuationToken,omitempty"`
|
|
StartAfter string `xml:"StartAfter,omitempty"`
|
|
EncodingType string `xml:"EncodingType,omitempty"`
|
|
|
|
Contents []Contents `xml:"Contents,omitempty"`
|
|
CommonPrefixes []CommonPrefixes `xml:"CommonPrefixes,omitempty"`
|
|
}
|
|
|
|
type Contents struct {
|
|
Key string `xml:"Key"`
|
|
LastModified string `xml:"LastModified"`
|
|
ETag string `xml:"ETag"`
|
|
Size int64 `xml:"Size"`
|
|
StorageClass string `xml:"StorageClass"`
|
|
}
|
|
|
|
type CommonPrefixes struct {
|
|
Prefix string `xml:"Prefix"`
|
|
}
|
|
|
|
type MultipartUpload struct {
|
|
UploadID string `json:"upload_id" xml:"UploadId"`
|
|
Bucket string `json:"bucket" xml:"Bucket"`
|
|
Key string `json:"key" xml:"Key"`
|
|
CreatedAt string `json:"created_at" xml:"CreatedAt"`
|
|
State string `json:"state" xml:"State"`
|
|
}
|
|
|
|
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"`
|
|
}
|
|
type UploadedPart struct {
|
|
PartNumber int `json:"part_number" xml:"PartNumber"`
|
|
ETag string `json:"etag" xml:"ETag"`
|
|
Size int64 `json:"size" xml:"Size"`
|
|
Chunks []string `json:"chunks"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
}
|
|
|
|
type CompletedPart struct {
|
|
PartNumber int `xml:"PartNumber"`
|
|
ETag string `xml:"ETag"`
|
|
}
|
|
|
|
type CompleteMultipartUploadRequest struct {
|
|
XMLName xml.Name `xml:"CompleteMultipartUpload"`
|
|
Parts []CompletedPart `xml:"Part"`
|
|
}
|
|
|
|
type CompleteMultipartUploadResult struct {
|
|
XMLName xml.Name `xml:"CompleteMultipartUploadResult"`
|
|
Xmlns string `xml:"xmlns,attr"`
|
|
Bucket string `xml:"Bucket"`
|
|
Key string `xml:"Key"`
|
|
ETag string `xml:"ETag"`
|
|
Location string `xml:"Location,omitempty"`
|
|
}
|
|
|
|
type CopyObjectResult struct {
|
|
XMLName xml.Name `xml:"CopyObjectResult"`
|
|
Xmlns string `xml:"xmlns,attr,omitempty"`
|
|
LastModified string `xml:"LastModified"`
|
|
ETag string `xml:"ETag"`
|
|
}
|
|
|
|
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"`
|
|
Parts []PartItem `xml:"Part"`
|
|
}
|
|
|
|
type PartItem struct {
|
|
PartNumber int `xml:"PartNumber"`
|
|
LastModified string `xml:"LastModified"`
|
|
ETag string `xml:"ETag"`
|
|
Size int64 `xml:"Size"`
|
|
}
|
|
|
|
type DeleteObjectsRequest struct {
|
|
XMLName xml.Name `xml:"Delete"`
|
|
Objects []DeleteObjectIdentity `xml:"Object"`
|
|
Quiet bool `xml:"Quiet"`
|
|
}
|
|
|
|
type DeleteObjectIdentity struct {
|
|
Key string `xml:"Key"`
|
|
}
|
|
|
|
type DeleteObjectsResult struct {
|
|
XMLName xml.Name `xml:"DeleteResult"`
|
|
Xmlns string `xml:"xmlns,attr"`
|
|
Deleted []DeletedEntry `xml:"Deleted,omitempty"`
|
|
Errors []DeleteError `xml:"Error,omitempty"`
|
|
}
|
|
|
|
type DeletedEntry struct {
|
|
Key string `xml:"Key"`
|
|
}
|
|
|
|
type DeleteError struct {
|
|
Key string `xml:"Key"`
|
|
Code string `xml:"Code"`
|
|
Message string `xml:"Message"`
|
|
}
|
|
|
|
type AuthIdentity struct {
|
|
AccessKeyID string `json:"access_key_id"`
|
|
SecretEnc string `json:"secret_enc"`
|
|
SecretNonce string `json:"secret_nonce"`
|
|
EncAlg string `json:"enc_alg"`
|
|
KeyVersion string `json:"key_version"`
|
|
Status string `json:"status"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
}
|
|
|
|
type AuthPolicy struct {
|
|
Principal string `json:"principal"`
|
|
Statements []AuthPolicyStatement `json:"statements"`
|
|
}
|
|
|
|
type AuthPolicyStatement struct {
|
|
Effect string `json:"effect"`
|
|
Actions []string `json:"actions"`
|
|
Bucket string `json:"bucket"`
|
|
Prefix string `json:"prefix"`
|
|
}
|