349 Commits

Author SHA1 Message Date
Henry
e7b93de2ac chore: gofmt
Some checks failed
build / go1.21 (push) Has been cancelled
build / go1.22 (push) Has been cancelled
build / linux (push) Has been cancelled
build / linux_386 (push) Has been cancelled
build / mac_amd64 (push) Has been cancelled
build / mac_arm64 (push) Has been cancelled
build / windows (push) Has been cancelled
build / lint (push) Has been cancelled
v0.0.8
2025-06-27 19:06:39 +08:00
Henry
6e8100bb55 Merge remote-tracking branch 'origin/merge' 2025-06-27 19:02:15 +08:00
Henry
d6dfd4186c chore: update package name
Some checks failed
build / go1.20 (push) Has been cancelled
build / go1.21 (push) Has been cancelled
build / linux (push) Has been cancelled
build / linux_386 (push) Has been cancelled
build / mac_amd64 (push) Has been cancelled
build / mac_arm64 (push) Has been cancelled
build / windows (push) Has been cancelled
build / lint (push) Has been cancelled
2025-06-27 16:37:33 +08:00
Nick Craig-Wood
81e56a30c8 list objects: obey encoding-type
Before this change we unconditionally set encoding-type=url which was
confusing some clients.

After this change we do URL encoding only if it was requested.

NB This will require the backend to not URL encode keys which rclone
was doing before.

Fixes #4
2025-01-11 17:16:06 +00:00
Nick Craig-Wood
8287a58f6f list objects: move encoding type to base as it applies to v1 and v2 2024-12-28 16:22:16 +00:00
Nick Craig-Wood
87dfa76830 Switch to github.com/minio/xxml rather than our own forked XML codec 2024-12-28 16:22:16 +00:00
Nick Craig-Wood
5af388db69 Narrow the locking window when accessing v4AuthPair map
In this commit

d6abc178be Fix race condition when updating v4AuthPair map

We put in locking to access the v4AuthPair map. However this locking
extended over the HTTP request which means that it effectively made
the server single threaded in certain cases.

This fix narrows the locking window to fix the problem.

See: https://forum.rclone.org/t/can-rclone-serve-s3-handle-more-than-one-client/48329/
2024-10-25 10:26:05 +01:00
Nick Craig-Wood
e89eb57306 Remove uses of deprecated math/rand.Read function 2024-10-24 11:11:55 +01:00
Nick Craig-Wood
83e452be75 Remove uses of deprecated io/ioutil library 2024-10-24 11:11:55 +01:00
Nick Craig-Wood
c233c42de3 build: update tests to use go1.23 2024-10-24 11:11:55 +01:00
Nick Craig-Wood
e80146f8de Update to using AWS SDKv2 in the tests as v1 is deprecated
This also stops the non test code importing the AWS SDK which it
should never have done.
2024-08-07 16:18:02 +01:00
David Hao
6dd5da6d1c Fix: only add Prefix self when it's Dir. v0.0.7 2024-07-26 12:38:48 +08:00
David Hao
8a3e25d461 Support create Dir and listBucket add Dir info
(cherry picked from commit eecd8095d80ccb6922ec87e7e214b5880a047899)
v0.0.6
2024-07-17 00:33:59 +08:00
Sawjan Gurung
390ec18aac Fix race condition when updating v4AuthPair map
This was discovered as part of https://github.com/rclone/rclone/pull/7646

(cherry picked from commit d6abc178be)
2024-07-17 00:31:15 +08:00
Ke Wang
41b777cbd2 feat(auth): add authentication expiration check in signature-v4
(cherry picked from commit 0c656d1755)
2024-07-17 00:31:15 +08:00
itsHenry
1689f5a56c feat(auth): enhance AWS Signature V4 authentication support
- Add query-based authentication alongside header-based
- Support "UNSIGNED-PAYLOAD"
- Add fallback options for date header extraction
- Fix ordering of query keys by using req.URL.Query().Encode() instead of req.URL.RawQuery

(cherry picked from commit d61b9c9b56)
2024-07-17 00:31:15 +08:00
Sawjan Gurung
d6abc178be Fix race condition when updating v4AuthPair map
This was discovered as part of https://github.com/rclone/rclone/pull/7646
2024-07-16 10:38:03 +01:00
Ke Wang
0c656d1755 feat(auth): add authentication expiration check in signature-v4 2024-07-15 11:45:26 +01:00
itsHenry
d61b9c9b56 feat(auth): enhance AWS Signature V4 authentication support
- Add query-based authentication alongside header-based
- Support "UNSIGNED-PAYLOAD"
- Add fallback options for date header extraction
- Fix ordering of query keys by using req.URL.Query().Encode() instead of req.URL.RawQuery
2024-07-10 12:42:16 +01:00
itsHenry
f18f0fbc9d Fix XML in ErrorResponse to have the correct name (#4)
See: https://github.com/rclone/rclone/issues/7749

Co-authored-by: Nick Craig-Wood <nick@craig-wood.com>
v0.0.5
2024-07-02 22:19:20 +08:00
David Hao
3ea5cd2835 Implement AWS Signature V2 2024-07-02 22:16:24 +08:00
Henry
5799d51f45 feat: query-based signature support v0.0.4 2024-05-07 23:10:42 +08:00
Nick Craig-Wood
90e8e825c0 Fix XML in ErrorResponse to have the correct name
See: https://github.com/rclone/rclone/issues/7749
2024-04-22 17:03:09 +01:00
Nick Craig-Wood
b7a9fdb78d build: fix tests which were expecting to error 2024-04-13 18:10:58 +01:00
Nick Craig-Wood
8db446289d build: fix use of deprecated functions 2024-04-13 18:02:01 +01:00
Nick Craig-Wood
372c3e746e lint: enable staticcheck and fix problems 2024-04-13 17:37:49 +01:00
Nick Craig-Wood
0d0c480686 lint: enable errcheck and fix problems 2024-04-13 17:29:49 +01:00
Nick Craig-Wood
baba38408c lint: enable unused and fix problems 2024-04-12 18:09:53 +01:00
Nick Craig-Wood
1703edfb92 lint: enable unconvert and fix problems 2024-04-12 18:05:58 +01:00
Nick Craig-Wood
0ef63888d3 lint: enable ineffassign and fix problems 2024-04-12 18:04:22 +01:00
Nick Craig-Wood
12efbbfa21 Update README with CI and other badges 2024-04-12 17:53:37 +01:00
Nick Craig-Wood
0c2edf9d07 test: disable failing test 2024-04-12 17:50:35 +01:00
Nick Craig-Wood
174a2dc8c5 test: disable IMDS to look up region in tests to fix Github CI
See: https://github.com/aws/aws-cli/issues/5234#issuecomment-705831465
2024-04-12 17:50:35 +01:00
Nick Craig-Wood
d6a697ddae test: more logging 2024-04-12 17:50:35 +01:00
Nick Craig-Wood
e99f68c813 lint: stylecheck: fix default case should be first or last in switch statement 2024-04-12 16:59:36 +01:00
Nick Craig-Wood
818f37db44 lint: govet: fix struct literal uses unkeyed fields 2024-04-12 16:58:38 +01:00
Nick Craig-Wood
bc23260dfe lint: gosimple: remove unecessary use of fmt.Sprintf 2024-04-12 16:57:38 +01:00
Nick Craig-Wood
b7d01180aa lint: misspell: fix spelling 2024-04-12 16:56:42 +01:00
Nick Craig-Wood
074b52e8ae build: add CI with GitHub actions 2024-04-12 16:49:08 +01:00
Nick Craig-Wood
f35277f0c1 go fmt all the files 2024-04-12 16:40:42 +01:00
Nick Craig-Wood
c07f2055f4 Complete the move to the rclone organization by changing the import path 2024-04-12 16:36:10 +01:00
Saw-jan
5be237aa06 test: fix tests 2024-04-12 16:24:15 +01:00
Saw-jan
3bdd10db84 pass context instead of request 2024-04-12 16:24:15 +01:00
Saw-jan
cae0556a3f fix tests 2024-04-12 16:24:15 +01:00
Saw-jan
beb07a1101 pass req obj to backend methods 2024-04-12 16:24:15 +01:00
Saw-jan
bf4feae247 add exported GetAccessKey method 2024-04-12 16:24:15 +01:00
Saw-jan
2b589a1dc7 export ParseSignV4 method 2024-04-12 16:24:15 +01:00
Kakigōri Maker
284c0f9887 Merge pull request #2 from JankariTech/fixEncoding
Fix encoding
2023-06-22 19:20:24 +09:00
Artur Neumann
733861251a set encoding type to "url"
at least for the `mc` client of minio this makes things clearer
having a folder/file name in the backend that contains unusual characters e.g. `bucket2/sub-folder <>/a space $%&#.txt`
results without this change in this output when running `mc ls`
`[2023-06-16 17:19:10 +0545]    11B STANDARD /bucket2/sub-folder+%3C%3E/sub2/a+space+%24%25%26%23.txt`
also such a folder/bucket cannot be downloaded using `mc cp`

after the change the output of `mc ls` is correct and same as if it connects to AWS S3
`[2023-06-16 17:19:10 +0545]    11B STANDARD a space $%&#.txt`

and also the `mc tree -f` output looks correct
```
proxy/bucket2/
└─ sub-folder <>
   ├─ a space $%&#.txt
   └─ sub2
      └─ a space $%&#.txt
```
2023-06-21 15:57:58 +05:45
Artur Neumann
f4d6b12072 also URL encode the prefix
without this the prefix in the response would not be URL encoded

before:
```
<Prefix>
sub-folder &lt;&gt;/sub2/
</Prefix>
```

after
```
<Prefix>
sub-folder+%3C%3E/sub2/
</Prefix>
```
2023-06-20 09:34:55 +05:45