Nitish Tiwari
1a3dbbc9dd
Add x-amz-storage-class support ( #5295 )
...
This adds configurable data and parity options on a per object
basis. To use variable parity
- Users can set environment variables to cofigure variable
parity
- Then add header x-amz-storage-class to putobject requests
with relevant storage class values
Fixes #4997
7 years ago
Harshavardhana
a4d6195244
Add public data-types for easier external loading ( #5170 )
...
This change brings public data-types such that
we can ask projects to implement gateway projects
externally than maintaining in our repo.
All publicly exported structs are maintained in object-api-datatypes.go
completePart --> CompletePart
uploadMetadata --> MultipartInfo
All other exported errors are at object-api-errors.go
7 years ago
Nitish Tiwari
fcc61fa46a
Remove minimum inodes reqd check ( #4747 )
7 years ago
Harshavardhana
155a90403a
fs/erasure: Rename meta 'md5Sum' as 'etag'. ( #4319 )
...
This PR also does backend format change to 1.0.1
from 1.0.0. Backward compatible changes are still
kept to read the 'md5Sum' key. But all new objects
will be stored with the same details under 'etag'.
Fixes #4312
8 years ago
Remco Verhoef
3a539ce660
Implement gateway S3 support ( #3940 )
8 years ago
Krishnan Parthasarathi
2bd694dbc8
Add disksUnavailable healStatus const ( #3990 )
...
`disksUnavailable` healStatus constant indicates that a given object
needs healing but one or more of disks requiring heal are offline. This
can be used by admin heal API consumers to distinguish between a
successful heal and a no-op since the outdated disks were offline.
8 years ago
Krishnan Parthasarathi
051f9bb5c6
Implement list uploads heal admin API ( #3885 )
8 years ago
Harshavardhana
9df01035da
Remove XL references in public docs to Erasure. ( #3725 )
...
Ref #3722
8 years ago
Harshavardhana
77a192a7b5
Implement CopyObjectPart API ( #3663 )
...
This API is implemented to allow copying data from an
existing source object to an ongoing multipart operation
http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html
Fixes #3662
8 years ago
Anis Elleuch
0715032598
heal: Add ListBucketsHeal object API ( #3563 )
...
ListBucketsHeal will list which buckets that need to be healed:
* ListBucketsHeal() (buckets []BucketInfo, err error)
8 years ago
Krishnan Parthasarathi
c194b9f5f1
Implement mgmt REST APIs for heal subcommands ( #3533 )
...
The heal APIs supported in this change are,
- listing of objects to be healed.
- healing a bucket.
- healing an object.
8 years ago
Harshavardhana
f57f773189
admin: Add missing madmin examples and API docs. ( #3483 )
8 years ago
Harshavardhana
ff4ce0ee14
fs/xl: Combine input checks into re-usable functions. ( #3383 )
...
Repeated code around both object layers are moved
and combined into simple re-usable functions.
8 years ago
Harshavardhana
3cfb23750a
control: Implement service command 'stop,restart,status'. ( #2883 )
...
- stop - stops all the servers.
- restart - restart all the servers.
- status - prints status of storage info about the cluster.
8 years ago
Harshavardhana
6494b77d41
server: Add more elaborate startup messages. ( #2731 )
...
These messages based on our prep stage during XL
and prints more informative message regarding
drive information.
This change also does a much needed refactoring.
8 years ago
Harshavardhana
bccf549463
server: Move all the top level files into cmd folder. ( #2490 )
...
This change brings a change which was done for the 'mc'
package to allow for clean repo and have a cleaner
github drop in experience.
8 years ago
utsl42
e5cd35aad0
XL: GetObjectInfo() store and retrieve user-defined object metadata. ( #2189 )
8 years ago
Harshavardhana
71632b375e
docs: Add comments for each data types. ( #1881 )
9 years ago
Harshavardhana
34e9ad24aa
XL: Introduce new API StorageInfo. ( #1770 )
...
This is necessary for calculating the total storage
capacity from object layer. This value is also needed for
browser UI.
Buckets used to carry this information, this patch
deprecates this feature.
9 years ago
Harshavardhana
9fdb69563d
handler: CopyObject should save metadata. ( #1698 )
...
- Content-Type
- Content-Encoding
- ETag
Fixes #1682
9 years ago
Harshavardhana
4cf73caf02
api: Add diskInfo as part of StatVol and ListVols. ( #1349 )
...
It is the bucket and volumes which needs to have this
value rather than the DiskInfo API itself. Eventually
this can be extended to show disk usage per
Buckets/Volumes whenever we have that functionality.
For now since buckets/volumes are thinly provisioned
this is the right approach.
9 years ago
Krishna Srinivas
caa35f68fa
listMultipart: implement support for marker. ( #1313 )
9 years ago
Krishna Srinivas
01a439f95b
refactor: add multipart code to the object layer.
9 years ago
Krishna Srinivas
3c48537f20
refactor: refactor code to separate fs into object-layer and fs layer. ( #1305 )
9 years ago
Harshavardhana
0479d4976b
objectAPI: Fix object API interface, remove unnecessary structs.
...
ObjectAPI changes.
```
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsInfo, *probe.Error)
ListMultipartUploads(bucket, objectPrefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (ListMultipartsInfo, *probe.Error)
ListObjectParts(bucket, object, uploadID string, partNumberMarker, maxParts int) (ListPartsInfo, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []completePart) (ObjectInfo, *probe.Error)
```
9 years ago
Harshavardhana
efc80343e3
fs: Break fs package to top-level and introduce ObjectAPI interface.
...
ObjectAPI interface brings in changes needed for XL ObjectAPI layer.
The new interface for any ObjectAPI layer is as below
```
// ObjectAPI interface.
type ObjectAPI interface {
// Bucket resource API.
DeleteBucket(bucket string) *probe.Error
ListBuckets() ([]BucketInfo, *probe.Error)
MakeBucket(bucket string) *probe.Error
GetBucketInfo(bucket string) (BucketInfo, *probe.Error)
// Bucket query API.
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsResult, *probe.Error)
ListMultipartUploads(bucket string, resources BucketMultipartResourcesMetadata) (BucketMultipartResourcesMetadata, *probe.Error)
// Object resource API.
GetObject(bucket, object string, startOffset int64) (io.ReadCloser, *probe.Error)
GetObjectInfo(bucket, object string) (ObjectInfo, *probe.Error)
PutObject(bucket string, object string, size int64, data io.Reader, metadata map[string]string) (ObjectInfo, *probe.Error)
DeleteObject(bucket, object string) *probe.Error
// Object query API.
NewMultipartUpload(bucket, object string) (string, *probe.Error)
PutObjectPart(bucket, object, uploadID string, partID int, size int64, data io.Reader, md5Hex string) (string, *probe.Error)
ListObjectParts(bucket, object string, resources ObjectResourcesMetadata) (ObjectResourcesMetadata, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []CompletePart) (ObjectInfo, *probe.Error)
AbortMultipartUpload(bucket, object, uploadID string) *probe.Error
}
```
9 years ago
Harshavardhana
52751d81cb
cleanup: Rename ObjectMetadata as ObjectInfo.
...
Fixes #1215
9 years ago
Harshavardhana
d5057b3c51
accessPolicy: Implement Put, Get, Delete access policy.
...
This patch implements Get,Put,Delete bucket policies
Supporting - http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
Currently supports following actions.
"*": true,
"s3:*": true,
"s3:GetObject": true,
"s3:ListBucket": true,
"s3:PutObject": true,
"s3:CreateBucket": true,
"s3:GetBucketLocation": true,
"s3:DeleteBucket": true,
"s3:DeleteObject": true,
"s3:AbortMultipartUpload": true,
"s3:ListBucketMultipartUploads": true,
"s3:ListMultipartUploadParts": true,
following conditions for "StringEquals" and "StringNotEquals"
"s3:prefix", "s3:max-keys"
9 years ago
Harshavardhana
3ff8a1b719
api: Implement CopyObject s3 API, doing server side copy.
...
Fixes #1172
9 years ago
Harshavardhana
800b19d8e5
cleanup: Remove definitions and move them to its relative places accordingly
...
- Move fs-definitions.go and break them into fs-datatypes.go, fs-bucket-acl.go
and fs-utils.go
- Move api-definitions.go to api-response.go, where they should be.
- Move web-definitions to its related handlers.
9 years ago
Harshavardhana
5a9333a67b
signature: Rewrite signature handling and move it into a library.
9 years ago
Harshavardhana
69bd001c8b
multipart: Multipart resume simplify further.
9 years ago
Harshavardhana
a4c005ce30
multipart: Code cleanup
...
- More locking cleanup. Fix naming convention.
- Simplify concatenation and blocking calls.
9 years ago
Harshavardhana
f5d6be158e
listObjects: Simplify channel based changes.
9 years ago
Harshavardhana
682020ef2f
listObjects: Channel based changes.
...
Supports:
- prefixes
- marker
9 years ago
Krishna Srinivas
9e18bfa60e
listObjects: Channel based ftw - initial implementation.
9 years ago
Harshavardhana
497f13d733
api: Various fixes.
...
- limit list buckets to limit only 100 buckets, all uppercase buckets
are now lowercase and work transparently with all calls.
- Change disk.Stat to disk.GetInfo and return back disk.Info{} struct.
- Introduce new ioutils package which implements ReadDirN(path, n),
ReadDirNamesN(path, n)
9 years ago
Harshavardhana
4fc161ddb1
bucketName: relax bucket names, now allow numbers as starting characters.
9 years ago
Harshavardhana
762b798767
Migrate this project to minio micro services code
9 years ago
Harshavardhana
d5ce2f6944
Make erasure matrix type not optional choose automatically
...
Remove option of providing Technique and handling errors based on that
choose a matrix type automatically based on number of data blocks.
INTEL recommends on using cauchy for consistent invertible matrices,
while vandermonde is faster we should default to cauchy for large
data blocks.
9 years ago
Harshavardhana
63c9cf0c4b
Move from Minimalist Object Storage to Minio Cloud Storage
9 years ago
Harshavardhana
c1da10a207
Donut multipart support no get, listobjects() support yet
9 years ago
Harshavardhana
e1e4908515
Wire up sha512 matching inside donut along with md5sum
9 years ago
Harshavardhana
00890c254e
CompleteMultipartUpload and CreateObjectPart now fully support signature v4
10 years ago
Harshavardhana
0a827305ad
Implement metadata cache, metadata cache is used by top level donut right now. Rename trove as data cache
...
We should use it internally everywhere.
10 years ago
Harshavardhana
8a4e7bcdcf
Add full API tests, move storage/donut to donut, add disk tests as well
10 years ago
Harshavardhana
7c37e9d06a
Make donut fully integrated back into API handlers
10 years ago
Harshavardhana
335c7827eb
More donut, cache, api cleanup
10 years ago
Harshavardhana
6921328b93
Avoid frivolous GetObjectMetadata() calls at driver level, return back all the information in donut ListObjects()
10 years ago
Harshavardhana
f3c25bcfc4
Keeping the lexical order same add optimizations, provide a comprehensive response from ListObjects()
10 years ago