multipartclient

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AbortMultipartUploadRequest added in v0.1.0

type AbortMultipartUploadRequest struct {
	Bucket   string `xml:"Bucket"`
	Key      string `xml:"Key"`
	UploadID string `xml:"UploadId"`
}

type CommonPrefixes added in v0.8.0

type CommonPrefixes struct {
	XMLName xml.Name `xml:"CommonPrefixes"`
	Prefix  string   `xml:"Prefix"`
}

CommonPrefixes represents grouped object name prefixes

type CompleteMultipartUploadBody added in v0.1.0

type CompleteMultipartUploadBody struct {
	XMLName xml.Name `xml:"CompleteMultipartUpload"`
	Parts   []CompletePart
}

type CompleteMultipartUploadRequest added in v0.1.0

type CompleteMultipartUploadRequest struct {
	Bucket   string
	Key      string
	UploadID string
	Body     CompleteMultipartUploadBody
}

TODO: Add header support.

type CompleteMultipartUploadResponse added in v0.1.0

type CompleteMultipartUploadResponse struct {
	Result CompleteMultipartUploadResult
	Hash   string
}

type CompleteMultipartUploadResult added in v0.1.0

type CompleteMultipartUploadResult struct {
	XMLName  xml.Name `xml:"CompleteMultipartUploadResult"`
	Location string   `xml:"Location"`
	Bucket   string   `xml:"Bucket"`
	Key      string   `xml:"Key"`
	Etag     string   `xml:"ETag"`
}

type CompletePart added in v0.1.0

type CompletePart struct {
	XMLName    xml.Name `xml:"Part"`
	PartNumber int      `xml:"PartNumber"`
	Etag       string   `xml:"ETag"`
}

type InitiateMultipartUploadRequest

type InitiateMultipartUploadRequest struct {
	Bucket string
	Key    string

	// Custom metadata
	CustomMetadata map[string]string
}

Initiate Multipart Upload Request https://cloud.google.com/storage/docs/xml-api/post-object-multipart

type InitiateMultipartUploadResult

type InitiateMultipartUploadResult struct {
	XMLName  xml.Name `xml:"InitiateMultipartUploadResult"`
	Bucket   string   `xml:"Bucket"`
	Key      string   `xml:"Key"`
	UploadID string   `xml:"UploadId"`
}

Initiate Multipart Upload Response https://cloud.google.com/storage/docs/xml-api/post-object-multipart

type ListMultipartUploadsRequest added in v0.1.0

type ListMultipartUploadsRequest struct {
	Bucket string

	// Query string parameters for pagination and filtering
	KeyMarker      string
	MaxUploads     int
	Prefix         string
	UploadIdMarker string
	Delimiter      string
}

type ListMultipartUploadsResult added in v0.1.0

type ListMultipartUploadsResult struct {
	XMLName            xml.Name         `xml:"ListMultipartUploadsResult"`
	Bucket             string           `xml:"Bucket"`
	KeyMarker          string           `xml:"KeyMarker"`
	UploadIdMarker     string           `xml:"UploadIdMarker"`
	NextKeyMarker      string           `xml:"NextKeyMarker"`
	NextUploadIdMarker string           `xml:"NextUploadIdMarker"`
	Delimiter          string           `xml:"Delimiter"`
	Prefix             string           `xml:"Prefix"`
	MaxUploads         int              `xml:"MaxUploads"`
	IsTruncated        bool             `xml:"IsTruncated"`
	Uploads            []ListUpload     `xml:"Upload"`
	CommonPrefixes     []CommonPrefixes `xml:"CommonPrefixes"`
}

https://cloud.google.com/storage/docs/xml-api/get-bucket-uploads

type ListObjectPartsRequest added in v0.1.0

type ListObjectPartsRequest struct {
	Bucket           string
	Key              string
	UploadID         string
	MaxParts         int
	PartNumberMarker int
}

type ListObjectPartsResult added in v0.1.0

type ListObjectPartsResult struct {
	XMLName              xml.Name                    `xml:"ListPartsResult"`
	Bucket               string                      `xml:"Bucket"`
	Key                  string                      `xml:"Key"`
	UploadID             string                      `xml:"UploadId"`
	StorageClass         string                      `xml:"StorageClass"`
	PartNumberMarker     int                         `xml:"PartNumberMarker"`
	NextPartNumberMarker int                         `xml:"NextPartNumberMarker"`
	MaxParts             int                         `xml:"MaxParts"`
	IsTruncated          bool                        `xml:"IsTruncated"`
	Parts                []ListObjectPartsResultPart `xml:"Part"`
}

type ListObjectPartsResultPart added in v0.5.0

type ListObjectPartsResultPart struct {
	XMLName      xml.Name  `xml:"Part"`
	PartNumber   int       `xml:"PartNumber"`
	LastModified time.Time `xml:"LastModified"`
	Etag         string    `xml:"ETag"`
	Size         int64     `xml:"Size"`
}

type ListUpload added in v0.1.0

type ListUpload struct {
	XMLName      xml.Name  `xml:"Upload"`
	Key          string    `xml:"Key"`
	UploadID     string    `xml:"UploadId"`
	StorageClass string    `xml:"StorageClass"`
	Initiated    time.Time `xml:"Initiated"`
}

TODO: Support headers

type MultipartClient added in v0.1.0

type MultipartClient struct {
	// contains filtered or unexported fields
}

Client for using GCS XML Multipart API: https://cloud.google.com/storage/docs/multipart-uploads

func New

func New(hc *http.Client) *MultipartClient

Create a multipart client that uses the specified http.Client.

func NewWithBaseURL added in v0.8.0

func NewWithBaseURL(hc *http.Client, baseURL string) *MultipartClient

NewWithBaseURL creates a multipart client with a custom base URL (useful for testing).

func (*MultipartClient) AbortMultipartUpload added in v0.1.0

func (mpuc *MultipartClient) AbortMultipartUpload(ctx context.Context, req *AbortMultipartUploadRequest) error

Abort multipart upload. https://cloud.google.com/storage/docs/xml-api/delete-multipart

func (*MultipartClient) CompleteMultipartUpload added in v0.1.0

Complete a multipart upload. https://cloud.google.com/storage/docs/xml-api/post-object-complete

func (*MultipartClient) InitiateMultipartUpload added in v0.1.0

InitiateMultipartUpload calls the XML Multipart API to Inititate a Multipart Upload.

func (*MultipartClient) ListMultipartUploads added in v0.1.0

List Multipart Uploads https://cloud.google.com/storage/docs/xml-api/get-bucket-uploads

func (*MultipartClient) ListObjectParts added in v0.1.0

List Object Parts https://cloud.google.com/storage/docs/xml-api/get-object-multipart

func (*MultipartClient) UploadObjectPart added in v0.1.0

Upload an object part request. https://cloud.google.com/storage/docs/xml-api/put-object-multipart

type UploadObjectPartRequest added in v0.1.0

type UploadObjectPartRequest struct {
	// Query string parameters
	Bucket     string
	Key        string
	PartNumber int
	UploadID   string

	// Headers
	CRC32C        string
	MD5           string
	ContentLength int64 // Length of the part data.

	// Object body part contents.
	Body io.ReadCloser
}

type UploadObjectPartResult added in v0.7.0

type UploadObjectPartResult struct {
	ETag   string
	CRC32C string
	MD5    string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL