Add docs for bucket quota feature (#9503)

This PR also adds a check to not enforce
bucket quota for server-side metadata copy
of an object onto itself.
This commit is contained in:
poornas 2020-05-16 19:27:33 -07:00 committed by GitHub
parent daf4418cbb
commit 011a2c0b78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 3 deletions

View File

@ -879,10 +879,12 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re
}
length = actualSize
}
if !cpSrcDstSame {
if err := enforceBucketQuota(ctx, dstBucket, actualSize); err != nil {
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL, guessIsBrowserReq(r))
return
}
}
var compressMetadata map[string]string
// No need to compress for remote etcd calls

View File

@ -0,0 +1,45 @@
# Bucket Quota Configuration Quickstart Guide [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/)
![quota](bucketquota.png)
Buckets can be configured to have one of two types of quota configuration - FIFO and Hard quota.
- `Hard` quota disallows writes to the bucket after configured quota limit is reached.
- `FIFO` quota automatically deletes oldest content until bucket usage falls within configured limit while permitting writes.
## 1. Prerequisites
- Install MinIO - [MinIO Quickstart Guide](https://docs.min.io/docs/minio-quickstart-guide).
- [Use `mc` with MinIO Server](https://docs.min.io/docs/minio-client-quickstart-guide)
## 2. Set bucket quota configuration
1. Set a hard quota of 1GB for a bucket `mybucket` on MinIO
object storage:
```sh
$ mc admin bucket quota myminio/mybucket --hard 1gb
```
2. Set FIFO quota of 5GB for a bucket "mybucket" on MinIO to allow automatic deletion of
older content to ensure bucket usage remains within 5GB
```sh
$ mc admin bucket quota myminio/mybucket --fifo 5gb
```
3. Verify the quota configured on `mybucket` on MinIO
```sh
$ mc admin bucket quota myminio/mybucket
```
4. Clear bucket quota configuration for `mybucket` on MinIO
```sh
$ mc admin bucket quota myminio/mybucket --clear
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB