# minio/minio-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/minio-minio-go).**

2,907 stars · 722 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/minio/minio-go
- Homepage: https://docs.min.io/docs/golang-client-quickstart-guide.html
- awesome-repositories: https://awesome-repositories.com/repository/minio-minio-go.md

## Topics

`aws-signature` `client-sdk` `cloud` `fileuploader` `go` `libraries` `minio` `s3`

## Description

minio-go is a client library and software development kit for interacting with S3-compatible object storage. It provides a programmatic interface for Go applications to manage buckets and objects using the S3 protocol.

The library enables the execution of complex storage operations, including multi-part uploads for large datasets, data synchronization between filesystems, and the management of bucket lifecycle and replication policies. It also supports advanced data retrieval through object searching and SQL-based querying of stored data.

The toolkit covers a broad range of administrative and security capabilities, including server-side encryption, bucket policy management, and the generation of presigned URLs. It further provides utilities for object immutability enforcement, event-driven bucket notifications, and storage usage auditing.

## Tags

### Data & Databases

- [S3 Storage Management](https://awesome-repositories.com/f/data-databases/object-storage/remote-object-storage-integrations/s3-storage-management.md) — Serves as a comprehensive SDK for developing Go applications that interact with S3-compatible object storage.
- [Cloud Object Storage](https://awesome-repositories.com/f/data-databases/file-storage-systems/cloud-object-storage.md) — Provides a high-level toolkit for managing unstructured data as blobs in S3-compatible cloud environments.
- [Object Data Management](https://awesome-repositories.com/f/data-databases/file-storage-systems/cloud-object-storage/direct-object-store-querying/object-bucket-management/object-data-management.md) — Provides utilities for object tagging, immutability locks, and server-side encryption to protect stored data.
- [Large File Transfers](https://awesome-repositories.com/f/data-databases/large-file-transfer-optimizers/large-file-transfers.md) — Enables the transfer of massive datasets between local systems and remote storage using multi-part upload optimizations. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))
- [Multi-Part Upload Orchestration](https://awesome-repositories.com/f/data-databases/multi-part-upload-orchestration.md) — Orchestrates the splitting of large objects into smaller chunks for concurrent transmission and final assembly on remote storage.
- [Object Storage Persistence](https://awesome-repositories.com/f/data-databases/object-storage-services/log-object-storage/object-storage-persistence.md) — Provides a programmatic interface for performing standard CRUD operations across compatible object storage systems. ([source](https://min.io/docs/minio/linux/developers/go/API.html))
- [Bucket Management](https://awesome-repositories.com/f/data-databases/object-storage/bucket-management.md) — Provides administrative controls to create, list, and remove buckets used to organize object storage resources. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Bucket Access Policies](https://awesome-repositories.com/f/data-databases/object-storage/bucket-management/bucket-access-policies.md) — Provides the ability to define and retrieve access rules to control user permissions for specific storage buckets. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Storage Access Control](https://awesome-repositories.com/f/data-databases/object-storage/bucket-management/bucket-access-policies/storage-access-control.md) — Implements secure data access using bucket policies, presigned URLs, and external identity provider integration.
- [Object Lifecycle Operations](https://awesome-repositories.com/f/data-databases/object-storage/object-lifecycle-operations.md) — Implements fundamental operations for managing individual objects, including retrieval, copying, and deletion. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Local-to-Cloud File Transfers](https://awesome-repositories.com/f/data-databases/session-management/session-file-transfers/cloud-browser-file-transfers/local-to-cloud-file-transfers.md) — Provides capabilities to upload and download files directly between a local filesystem and remote object storage. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Bucket Replication Configuration](https://awesome-repositories.com/f/data-databases/bucket-replication-configuration.md) — Sets up server-side replication to synchronize data between buckets in active-active configurations. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Cloud Storage Automation](https://awesome-repositories.com/f/data-databases/cloud-storage-automation.md) — Provides programmatic interfaces to automate bucket creation, lifecycle policies, and data replication.
- [Storage Content Synchronization](https://awesome-repositories.com/f/data-databases/data-import-and-export/storage-content-synchronization.md) — Mirrors content between local filesystems and remote buckets by identifying and copying missing or changed objects. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))
- [Direct Object Store Querying](https://awesome-repositories.com/f/data-databases/file-storage-systems/cloud-object-storage/direct-object-store-querying.md) — Enables the execution of SQL queries directly on stored objects to retrieve specific subsets of data. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))
- [Lifecycle Rule Configuration](https://awesome-repositories.com/f/data-databases/object-storage/bucket-management/lifecycle-rule-configuration.md) — Configures expiration and transition rules to automatically move or delete objects based on their age. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Object Search](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-and-indexing/prefix-searches/object-search.md) — Allows locating specific files or objects across storage systems using prefix and wildcard matching. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))
- [Storage State Comparison](https://awesome-repositories.com/f/data-databases/storage-state-comparison.md) — Identifies differences between directories or buckets by listing missing objects or size discrepancies. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))
- [Storage Tiering](https://awesome-repositories.com/f/data-databases/storage-tiering.md) — Automates the movement of data between different storage tiers based on object age and access frequency rules. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))

### DevOps & Infrastructure

- [S3-Compatible Storage Adapters](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/cloud-computing-serverless/cloud-storage/s3-compatible-storage-adapters.md) — Provides a comprehensive SDK that acts as an adapter for interacting with any S3-compatible object storage API.

### Development Tools & Productivity

- [Object Storage SDKs](https://awesome-repositories.com/f/development-tools-productivity/object-storage-sdks.md) — Provides a full-featured Go SDK for executing multi-part uploads, data synchronization, and bucket lifecycle management.
- [Concurrent Stream Buffering](https://awesome-repositories.com/f/development-tools-productivity/memory-buffering-utilities/memory-buffering-pipelines/direct-buffer-processing/stream-buffering-pipelines/concurrent-stream-buffering.md) — Uses Go channels and buffers to efficiently manage data transfers between local files and remote sockets without overloading memory.

### Networking & Communication

- [S3 Protocol Clients](https://awesome-repositories.com/f/networking-communication/remote-storage-protocols/s3-protocol-clients.md) — Provides a programmatic client implementation for connecting to and managing remote storage using the S3 protocol.

### Security & Cryptography

- [Request Signing](https://awesome-repositories.com/f/security-cryptography/identity-authentication/user-identity-verification/hmac-user-identity-verifications/request-signing.md) — Generates HMAC cryptographic signatures for every request to verify identity and prevent tampering during transit.
- [Presigned URL Generation](https://awesome-repositories.com/f/security-cryptography/presigned-url-generation.md) — Generates cryptographically signed, time-limited URLs to provide temporary access to private objects without sharing keys. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [Object Locking](https://awesome-repositories.com/f/security-cryptography/compliance-tools/object-locking.md) — Implements object locking and legal holds to prevent accidental or malicious deletion of data. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))
- [Bucket Encryption Configuration](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption/transit-and-at-rest-encryption/bucket-encryption-configuration.md) — Provides methods to set or remove encryption settings to ensure data remains encrypted while at rest in a bucket. ([source](https://cdn.jsdelivr.net/gh/minio/minio-go@master/README.md))
- [S3 Server-Side Encryptions](https://awesome-repositories.com/f/security-cryptography/secret-encryption/symmetric-secret-stores/server-side-encrypted-secret-stores/s3-server-side-encryptions.md) — Configures server-side encryption (SSE) modes for storage buckets to ensure data is encrypted by the storage provider. ([source](https://min.io/docs/minio/linux/reference/minio-mc.html))

### Software Engineering & Architecture

- [Provider Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/provider-abstractions.md) — Provides standardized interfaces that allow the client to interact with diverse S3-compatible storage backends through a consistent API.
