summaryrefslogtreecommitdiff
path: root/vendor/github.com/minio/minio-go/v7/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/minio/minio-go/v7/CLAUDE.md')
-rw-r--r--vendor/github.com/minio/minio-go/v7/CLAUDE.md125
1 files changed, 0 insertions, 125 deletions
diff --git a/vendor/github.com/minio/minio-go/v7/CLAUDE.md b/vendor/github.com/minio/minio-go/v7/CLAUDE.md
deleted file mode 100644
index 26ff95323..000000000
--- a/vendor/github.com/minio/minio-go/v7/CLAUDE.md
+++ /dev/null
@@ -1,125 +0,0 @@
-CLAUDE.md
-=========
-
-This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
-
-Commands
---------
-
-### Testing
-
-```bash
-# Run all tests with race detection (requires MinIO server at localhost:9000)
-SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minioadmin SECRET_KEY=minioadmin ENABLE_HTTPS=1 MINT_MODE=full go test -race -v ./...
-
-# Run tests without race detection
-go test ./...
-
-# Run short tests only (no functional tests)
-go test -short -race ./...
-
-# Run functional tests
-go build -race functional_tests.go
-SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minioadmin SECRET_KEY=minioadmin ENABLE_HTTPS=1 MINT_MODE=full ./functional_tests
-
-# Run functional tests without TLS
-SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minioadmin SECRET_KEY=minioadmin ENABLE_HTTPS=0 MINT_MODE=full ./functional_tests
-```
-
-### Linting and Code Quality
-
-```bash
-# Run all checks (lint, vet, test, examples, functional tests)
-make checks
-
-# Run linter only
-make lint
-
-# Run vet and staticcheck
-make vet
-
-# Alternative: run golangci-lint directly
-golangci-lint run --timeout=5m --config ./.golangci.yml
-```
-
-### Building Examples
-
-```bash
-# Build all examples
-make examples
-
-# Build a specific example
-cd examples/s3 && go build -mod=mod putobject.go
-```
-
-Architecture
-------------
-
-### Core Client Structure
-
-The MinIO Go SDK is organized around a central `Client` struct (api.go:52) that implements Amazon S3 compatible methods. Key architectural patterns:
-
-1. **Modular API Organization**: API methods are split into logical files:
-
- - `api-bucket-*.go`: Bucket operations (lifecycle, encryption, versioning, etc.)
- - `api-object-*.go`: Object operations (legal hold, retention, tagging, etc.)
- - `api-get-*.go`, `api-put-*.go`: GET and PUT operations
- - `api-list.go`: Listing operations
- - `api-stat.go`: Status/info operations
-
-2. **Credential Management**: The `pkg/credentials/` package provides various credential providers:
-
- - Static credentials
- - Environment variables (AWS/MinIO)
- - IAM roles
- - STS (Security Token Service) variants
- - File-based credentials
- - Chain provider for fallback mechanisms
-
-3. **Request Signing**: The `pkg/signer/` package handles AWS signature versions:
-
- - V2 signatures (legacy)
- - V4 signatures (standard)
- - Streaming signatures for large uploads
-
-4. **Transport Layer**: Custom HTTP transport with:
-
- - Retry logic with configurable max retries
- - Health status monitoring
- - Tracing support via httptrace
- - Bucket location caching (`bucketLocCache`\)
- - Session caching for credentials
-
-5. **Helper Packages**:
-
- - `pkg/encrypt/`: Server-side encryption utilities
- - `pkg/notification/`: Event notification handling
- - `pkg/policy/`: Bucket policy management
- - `pkg/lifecycle/`: Object lifecycle rules
- - `pkg/tags/`: Object and bucket tagging
- - `pkg/s3utils/`: S3 utility functions
- - `pkg/kvcache/`: Key-value caching
- - `pkg/singleflight/`: Deduplication of concurrent requests
-
-### Testing Strategy
-
-- Unit tests alongside implementation files (`*_test.go`\)
-- Comprehensive functional tests in `functional_tests.go` requiring a live MinIO server
-- Example programs in `examples/` directory demonstrating API usage
-- Build tag `//go:build mint` for integration tests
-
-### Error Handling
-
-- Custom error types in `api-error-response.go`
-- HTTP status code mapping
-- Retry logic for transient failures
-- Detailed error context preservation
-
-Important Patterns
-------------------
-
-1. **Context Usage**: All API methods accept `context.Context` for cancellation and timeout control
-2. **Options Pattern**: Methods use Options structs for optional parameters (e.g., `PutObjectOptions`, `GetObjectOptions`\)
-3. **Streaming Support**: Large file operations use io.Reader/Writer interfaces for memory efficiency
-4. **Bucket Lookup Types**: Supports both path-style and virtual-host-style S3 URLs
-5. **MD5/SHA256 Hashing**: Configurable hash functions for integrity checks via `md5Hasher` and `sha256Hasher`