Harshavardhana
4e34e03dd4
xl/fs: Split object layer into interface. ( #1415 )
9 years ago
Harshavardhana
5f80edf232
routers: Fix a crash while initializing network fs. ( #1382 )
...
Crash happens when 'minio server filename' a file name is
provided instead of a directory on command line argument.
```
panic: runtime error: slice bounds out of range
goroutine 1 [running]:
panic(0x5eb460, 0xc82000e0b0)
/usr/local/opt/go/libexec/src/runtime/panic.go:464 +0x3e6
main.splitNetPath(0x7fff5fbff9bd, 0x7, 0x0, 0x0, 0x0, 0x0)
/Users/harsha/mygo/src/github.com/minio/minio/network-fs.go:49 +0xb7
main.newNetworkFS(0x7fff5fbff9bd, 0x7, 0x0, 0x0, 0x0, 0x0)
/Users/harsha/mygo/src/github.com/minio/minio/network-fs.go:90 +0x20a
main.configureServerHandler(0xc82024e1c8, 0x5, 0xc8200640e0, 0x1, 0x1, 0x0, 0x0)
/Users/harsha/mygo/src/github.com/minio/minio/routers.go:43 +0x6ce
main.configureServer(0xc82024e1c8, 0x5, 0xc8200640e0, 0x1, 0x1, 0x5)
/Users/harsha/mygo/src/github.com/minio/minio/server-main.go:86 +0x67
```
9 years ago
Harshavardhana
57f35c2bcc
xl: Introduce new blocking writer to make CreateFile atomic. ( #1362 )
...
Creates a new write closer that must be released
by the read consumer. This is necessary so that
while commiting the underlying writers in erasure
coding we need to make sure we reply success only if
we have committed to disk.
This in turn also fixes plethora of bugs related to
subsequent PutObject() races with namespace locking.
This patch also enables most of the tests, other than
ListObjects paging which has some issues still.
Fixes #1358 , #1360
9 years ago
Harshavardhana
c7bf471c9e
list/xl: Fix the way marker is handled in leafDirectory verification.
9 years ago
Harshavardhana
a98a7fb1ad
Implement XL layer - preliminary work.
9 years ago
Harshavardhana
30b0b4deba
storage/server/client: Enable storage server, enable client storage.
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
Krishna Srinivas
331890c4c8
UI-handler: remove minio-go dependancy.
9 years ago
Krishna Srinivas
5201905ad0
UI: implement SetAuth/GenerateAuth handlers for changing credentials.
9 years ago
Harshavardhana
aa8c9bad54
routers: Move API and Web routers into their own files.
...
This is done to ensure we have a clean way to add new routers such as
- diskRouter
- configRouter
- lockRouter
9 years ago
Harshavardhana
9dca46e156
signature: Use a layered approach for signature verification.
...
Signature calculation has now moved out from being a package to
top-level as a layered mechanism.
In case of payload calculation with body, go-routines are initiated
to simultaneously write and calculate shasum. Errors are sent
over the writer so that the lower layer removes the temporary files
properly.
9 years ago
Harshavardhana
aaf97ea02c
config/main: Re-write config files - add to new config v3
...
- New config format.
```
{
"version": "3",
"address": ":9000",
"backend": {
"type": "fs",
"disk": "/path"
},
"credential": {
"accessKey": "WLGDGYAQYIGI833EV05A",
"secretKey": "BYvgJM101sHngl2uzjXS/OBF/aMxAN06JrJ3qJlF"
},
"region": "us-east-1",
"logger": {
"file": {
"enable": false,
"fileName": "",
"level": "error"
},
"syslog": {
"enable": false,
"address": "",
"level": "debug"
},
"console": {
"enable": true,
"level": "fatal"
}
}
}
```
New command lines in lieu of supporting XL.
Minio initialize filesystem backend.
~~~
$ minio init fs <path>
~~~
Minio initialize XL backend.
~~~
$ minio init xl <url1>...<url16>
~~~
For 'fs' backend it starts the server.
~~~
$ minio server
~~~
For 'xl' backend it waits for servers to join.
~~~
$ minio server
... [PROGRESS BAR] of servers connecting
~~~
Now on other servers execute 'join' and they connect.
~~~
....
minio join <url1> -- from <url2> && minio server
minio join <url1> -- from <url3> && minio server
...
...
minio join <url1> -- from <url16> && minio server
~~~
9 years ago
Harshavardhana
76bda0d8f1
routers: Fix order of PostPolicyHandlers and headers.
9 years ago
Harshavardhana
e781959d5b
vendor: Add minio-go vendor updates.
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
aed62788d9
api: Implement multiple objects Delete api - fixes #956
...
This API takes input XML input in following form.
```
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>true</Quiet>
<Object>
<Key>Key</Key>
</Object>
<Object>
<Key>Key</Key>
</Object>
...
</Delete>
```
and responds the list of successful deletes, list of errors
for all the deleted objects.
```
<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/ ">
<Deleted>
<Key>sample1.txt</Key>
</Deleted>
<Error>
<Key>sample2.txt</Key>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
</Error>
</DeleteResult>
```
9 years ago
Krishna Srinivas
44b2037667
browser-assets: serve asset files with compression.
9 years ago
Harshavardhana
df0bce374c
routers: Support special asset files.
...
- loader.css
- logo.svg
- {firefox,chrome,safari}.png
9 years ago
Harshavardhana
3ff8a1b719
api: Implement CopyObject s3 API, doing server side copy.
...
Fixes #1172
9 years ago
Harshavardhana
2181003609
web: Removing dependency for gpg and downloading assets.
...
Assets are vendorized from now on and updated for each release.
9 years ago
Krishna Srinivas
e509bcb2b9
UI: serve index.html if the requested file is not found in the assets bundle.
9 years ago
Harshavardhana
653ceee9ee
signV4: Move pkg/signature to pkg/s3/signature4
...
Cleanup and move this to relevant path.
9 years ago
Harshavardhana
5da1972d1f
router: Fix "/minio" router for web.
9 years ago
Harshavardhana
4db136c19c
web: Add targetProto for putObjectURL,getObjectURL SSL requests.
...
Currently the default request was based on the 'minio server'
SSL configuration. But inside a proxy this is invalid browser
needs to send which protocol it wishes the PresignedURL
should be generated for.
9 years ago
Harshavardhana
91a092792a
presigned: Fix a bug in presigned request verification.
...
Additionally add Docker proxy configuration.
9 years ago
Harshavardhana
dd9aaa855c
web/rpc: Merge ports with API server.
...
Fixes #1081 and #1130
9 years ago
Harshavardhana
5a9333a67b
signature: Rewrite signature handling and move it into a library.
9 years ago
Krishna Srinivas
6ad39cb386
WebUI: move from rpc/v2/json to rpc/v2/json2 which has better error response structure.
9 years ago
Harshavardhana
62f6ffb6db
xl: Moved to minio/minio - fixes #1112
9 years ago
Harshavardhana
f4c8120cf9
server: Remove max-buckets option and now max buckets is unlimited.
...
minio server max-buckets option removed. min-free-disk option is
now a flag.
9 years ago
Harshavardhana
8557cbc9b7
fs: Add granular locking.
9 years ago
Harshavardhana
a066184bed
ui-assets: Integrate UI assets.
9 years ago
Harshavardhana
012fbe756b
handlers: Fix the naming of all handlers.
9 years ago
Krishna Srinivas
a344e7713a
browser-caching: enable browser caching for WebUI
9 years ago
Harshavardhana
454d71cafa
expiry: Remove auto-expiry.
...
Move the logic outside and use scripting, cronjob to delete files.
Fixes #1019
9 years ago
Harshavardhana
df91661ec6
flags: Remove anonymous, ratelimit, json and web-address flags.
...
- Web address now uses the port + 1 from the API address port directly.
- Remove ratelimiting, ratelimiting will be achieved if necessary through
iptables.
- Remove json flag, not needed anymore.
- Remove anonymous flag, server will be no more anonymous for play.minio.io
we will use demo credentials.
9 years ago
Harshavardhana
a0c753b6eb
server: Add new set of message.
9 years ago
Krishna Srinivas
81b255511f
CORS: cors handling should be before auth handling. cors should allow PUT.
9 years ago
Harshavardhana
db387912f2
jwt: Deprecate RSA usage, use HMAC instead.
...
HMAC is a much simpler implementation, providing the same
benefits as RSA, avoids additional steps and keeps the code
simpler.
This patch also additionally
- Implements PutObjectURL API.
- GetObjectURL, PutObjectURL take TargetHost as another
argument for generating URL's for proper target destination.
- Adds experimental TLS support for JSON RPC calls.
9 years ago
Harshavardhana
13feabefd5
diskInfo: Add DiskInfo API
9 years ago
Harshavardhana
432a073e6b
Add MakeBucket API.
9 years ago
Harshavardhana
3f1c4bb4b0
Bring in the list APIs implemented by Bala <bala@minio.io>
9 years ago
Harshavardhana
0a9496462a
jwt: Add JWT support for minio server.
...
Please read JWT.md before using this feature.
9 years ago
Harshavardhana
0345c8fffb
bucket-location: Implement bucket location response.
9 years ago
Harshavardhana
3c71c5c80c
s3cmd: Handle support for s3cmd.
9 years ago
Harshavardhana
836f5204af
minio: Add config-folder option.
...
Fixes #997
9 years ago
Harshavardhana
c44754629e
doc: Add comments for router operations
9 years ago
Kanai Masumi
84de2e33c4
Fix: permit trailing slash for compatible with S3.
...
ex.
s3cmd requests to path:`/<bucket>/` for PutBucket.
9 years ago
Harshavardhana
56003fded7
Add logger command - also migrate from old config to newer config
9 years ago
Harshavardhana
b9ea18b8b8
Implement accessLog handler
9 years ago