Assume standard storage class if not set in metadata (#5370)

If STANDARD storage class is set before starting up Minio server, 
but x-amz-storage-class metadata field is not set in a PutObject 
request, Minio server defaults to N/2 data and N/2 parity disks.

This PR changes the behaviour to use data and parity disks set in
STANDARD storage class, even if x-amz-storage-class metadata 
field is not present in PutObject requests.
This commit is contained in:
Nitish Tiwari
2018-01-11 14:58:12 +05:30
committed by GitHub
parent f413224b24
commit 1b721d76b1
4 changed files with 22 additions and 5 deletions

View File

@@ -20,7 +20,7 @@ Parity blocks can not be higher than data blocks, so `STANDARD` storage class pa
Default value for `STANDARD` storage class is `N/2` (N is the total number of drives).
### Reduced redundancy storage class (REDUCED_REDUNDANCY)
### Values for reduced redundancy storage class (REDUCED_REDUNDANCY)
`REDUCED_REDUNDANCY` implies lesser parity than `STANDARD` class. So,`REDUCED_REDUNDANCY` parity disks should be
@@ -47,7 +47,15 @@ export MINIO_STORAGE_CLASS_STANDARD=EC:3
export MINIO_STORAGE_CLASS_RRS=EC:2
```
If storage class is not defined before starting Minio server, and subsequent PutObject metadata field has `x-amz-storage-class` present
Storage class can also be set via `config.json` file. Refer [storage class](https://github.com/minio/minio/tree/master/docs/config#storage-class) for
more details.
*Note*
- If `STANDARD` storage class is set via environment variables or `config.json` files, and `x-amz-storage-class` is not present in request metadata, Minio server will
apply `STANDARD` storage class to the object. This means the data and parity disks will be used as set in `STANDARD` storage class.
- If storage class is not defined before starting Minio server, and subsequent PutObject metadata field has `x-amz-storage-class` present
with values `REDUCED_REDUNDANCY` or `STANDARD`, Minio server uses default parity values.
### Set metadata