/
t3
/
s3-server
Обзор
Документация
Войти
/
t3
/
s3-server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
internal/api/models.go
81 строка
2 KB
Ivan Shibkikh
bucket owner and cors
22 июл 2026, 20:42
22 июл 2026, 20:42
f627324
Код
Авторство
О чём код?
package api import ( "encoding/xml" ) // S3Error описывает стандартный формат ошибки S3 type S3Error struct { XMLName xml.Name `xml:"Error"` Code string `xml:"Code"` Message string `xml:"Message"` Resource string `xml:"Resource"` RequestID string `xml:"RequestId"` } // Модели для List Buckets type Owner struct { ID string `xml:"ID"` DisplayName string `xml:"DisplayName"` } type BucketInfo struct { Name string `xml:"Name"` CreationDate string `xml:"CreationDate"` Owner string `xml:"Owner"` } type ListAllMyBucketsResult struct { XMLName xml.Name `xml:"ListAllMyBucketsResult"` Owner Owner `xml:"Owner"` Buckets struct { Bucket []BucketInfo `xml:"Bucket"` } `xml:"Buckets"` } // Модели для List Objects type ObjectInfo struct { Key string `xml:"Key"` LastModified string `xml:"LastModified"` ETag string `xml:"ETag"` Size int64 `xml:"Size"` StorageClass string `xml:"StorageClass"` } type ListBucketResult struct { XMLName xml.Name `xml:"ListBucketResult"` Name string `xml:"Name"` Prefix string `xml:"Prefix"` KeyCount int `xml:"KeyCount"` MaxKeys int `xml:"MaxKeys"` IsTruncated bool `xml:"IsTruncated"` Contents []ObjectInfo `xml:"Contents"` } // Инициация Multipart type InitiateMultipartUploadResult struct { XMLName xml.Name `xml:"InitiateMultipartUploadResult"` Bucket string `xml:"Bucket"` Key string `xml:"Key"` UploadId string `xml:"UploadId"` } // Завершение Multipart (входящий XML от клиента) type CompleteMultipartUpload struct { XMLName xml.Name `xml:"CompleteMultipartUpload"` Parts []CompletePart `xml:"Part"` } type CompletePart struct { PartNumber int `xml:"PartNumber"` ETag string `xml:"ETag"` // Приходит в кавычках: "hash" } // Завершение Multipart (ответ) type CompleteMultipartUploadResult struct { XMLName xml.Name `xml:"CompleteMultipartUploadResult"` Location string `xml:"Location"` Bucket string `xml:"Bucket"` Key string `xml:"Key"` ETag string `xml:"ETag"` // Финальный хэш склеенного файла }