obs

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: May 6, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OBSACLPrivate                  = "private"
	OBSACLPublicRead               = "public-read"
	OBSACLPublicReadWrite          = "public-read-write"
	OBSACLPublicReadDelivered      = "public-read-delivered"
	OBSACLPublicReadWriteDelivered = "public-read-write-delivered"
)

Huawei OBS canned ACL values, sent via the `x-obs-acl` header.

Variables

This section is empty.

Functions

func CollapseGrants added in v0.3.1

func CollapseGrants(out BucketACLResponse) string

CollapseGrants reduces a parsed grant list into a canned ACL label.

func NormalizeOBSACL added in v0.3.1

func NormalizeOBSACL(level string) string

NormalizeOBSACL maps user-friendly aliases to canned OBS ACL values.

func Sign added in v0.2.1

func Sign(req *SignRequest) (http.Header, error)

Types

type APIError added in v0.2.1

type APIError struct {
	StatusCode int
	Code       string
	Message    string
	RequestID  string
}

func (*APIError) Error added in v0.2.1

func (e *APIError) Error() string

type BucketACLResponse added in v0.3.1

type BucketACLResponse struct {
	XMLName xml.Name `xml:"AccessControlPolicy"`
	Owner   struct {
		ID          string `xml:"ID"`
		DisplayName string `xml:"DisplayName"`
	} `xml:"Owner"`
	AccessControlList struct {
		Grant []struct {
			Grantee struct {
				Type string `xml:"http://www.w3.org/2001/XMLSchema-instance type,attr"`
				ID   string `xml:"ID"`
				URI  string `xml:"URI"`
			} `xml:"Grantee"`
			Permission string `xml:"Permission"`
		} `xml:"Grant"`
	} `xml:"AccessControlList"`
}

BucketACLResponse maps the body returned by `GET /?acl`. OBS exposes the same Owner+AccessControlList shape as S3.

type Client added in v0.2.1

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

func NewClient added in v0.2.1

func NewClient(cred auth.Credential, opts ...Option) *Client

func (*Client) GetBucketACL added in v0.3.1

func (c *Client) GetBucketACL(ctx context.Context, bucket, region string) (string, error)

GetBucketACL returns the canned ACL summary for bucket. Grants are folded back into a canonical canned-ACL string for the audit table.

func (*Client) ListBuckets added in v0.2.1

func (c *Client) ListBuckets(ctx context.Context, endpointRegion string) (*ListBucketsResponse, error)

func (*Client) ListObjects added in v0.2.1

func (c *Client) ListObjects(ctx context.Context, bucket, region, marker string, maxKeys int) (ListObjectsResponse, error)

func (*Client) PutBucketACL added in v0.3.1

func (c *Client) PutBucketACL(ctx context.Context, bucket, region, acl string) error

PutBucketACL sets a canned ACL on bucket via the `x-obs-acl` header.

type Driver added in v0.0.9

type Driver struct {
	Cred    auth.Credential
	Regions []string
	Client  *Client
}

func (*Driver) AuditBucketACL added in v0.3.1

func (d *Driver) AuditBucketACL(ctx context.Context, bucket string) ([]schema.BucketACLEntry, error)

AuditBucketACL enumerates buckets in scope and returns the canned ACL state.

func (*Driver) ExposeBucket added in v0.3.1

func (d *Driver) ExposeBucket(ctx context.Context, bucket, level string) (string, error)

ExposeBucket sets bucket public-readable (defaults to public-read).

func (*Driver) GetBuckets added in v0.0.9

func (d *Driver) GetBuckets(ctx context.Context) ([]schema.Storage, error)

func (*Driver) ListObjects added in v0.2.1

func (d *Driver) ListObjects(ctx context.Context, buckets map[string]string) ([]schema.BucketResult, error)

func (*Driver) TotalObjects added in v0.2.1

func (d *Driver) TotalObjects(ctx context.Context, buckets map[string]string) ([]schema.BucketResult, error)

func (*Driver) UnexposeBucket added in v0.3.1

func (d *Driver) UnexposeBucket(ctx context.Context, bucket string) error

UnexposeBucket reverts bucket to private.

type ListBucketsResponse added in v0.2.1

type ListBucketsResponse struct {
	XMLName xml.Name    `xml:"ListAllMyBucketsResult"`
	Buckets []OBSBucket `xml:"Buckets>Bucket"`
}

type ListObjectsResponse added in v0.2.1

type ListObjectsResponse struct {
	XMLName     xml.Name    `xml:"ListBucketResult"`
	IsTruncated bool        `xml:"IsTruncated"`
	Marker      string      `xml:"Marker"`
	NextMarker  string      `xml:"NextMarker"`
	MaxKeys     int         `xml:"MaxKeys"`
	Name        string      `xml:"Name"`
	Prefix      string      `xml:"Prefix"`
	Objects     []OBSObject `xml:"Contents"`
}

type OBSBucket added in v0.2.1

type OBSBucket struct {
	Name     string `xml:"Name"`
	Location string `xml:"Location"`
}

type OBSObject added in v0.2.1

type OBSObject struct {
	Key          string `xml:"Key"`
	Size         int64  `xml:"Size"`
	LastModified string `xml:"LastModified"`
	StorageClass string `xml:"StorageClass"`
}

type Option added in v0.2.1

type Option func(*Client)

func WithClock added in v0.2.1

func WithClock(now func() time.Time) Option

func WithHTTPClient added in v0.2.1

func WithHTTPClient(hc *http.Client) Option

func WithRetryPolicy added in v0.2.1

func WithRetryPolicy(p api.Retryer) Option

type SignRequest added in v0.2.1

type SignRequest struct {
	Method    string
	Path      string
	Query     url.Values
	Headers   http.Header
	Scheme    string
	AccessKey string
	SecretKey string
	Timestamp time.Time
}

Jump to

Keyboard shortcuts

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