The SigV4 encoder kept '/' unescaped in object paths by swapping in a "never matches" regex (/$^/) for query values, but that regex matches the empty string, so every empty query value went out as "/": prefix= became prefix=/ and ?policy became ?policy=/. The request then no longer matched what was signed, and listing any bucket or reading its policy failed against s3d. Bucket listing and creation carry no query, so they worked. Verified end to end against s3d (list, folders, upload, download, public policy, folder delete) and against the aws cli; two regression tests.
14 lines
1.1 KiB
JSON
14 lines
1.1 KiB
JSON
{
|
|
"id": "pithos",
|
|
"name": "Pithos",
|
|
"version": "0.3.3",
|
|
"description": "Run s3d, the Sia S3 gateway, from the Theseus sidebar: connect it to a Sia indexer, create S3 users and access keys, browse and share buckets, and watch uploads reach Sia.",
|
|
"author": "Silent Mode",
|
|
"icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjM2RkYzk3Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMWU4ZjZhIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTIyIDZoMjB2NWMwIDItMiAzLTIgNSA4IDMgMTQgMTEgMTQgMjEgMCAxMi05IDIxLTIyIDIxUzEwIDQ5IDEwIDM3YzAtMTAgNi0xOCAxNC0yMSAwLTItMi0zLTItNXoiIGZpbGw9InVybCgjZykiLz48cGF0aCBkPSJNMTQgMzBoMzZNMTMgNDBoMzgiIHN0cm9rZT0iIzBiMWYxOCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIG9wYWNpdHk9Ii41NSIvPjwvc3ZnPgo=",
|
|
"main": "index.js",
|
|
"capabilities": [
|
|
"sidebar-panel",
|
|
"vault-derive"
|
|
],
|
|
"updateURL": "https://navigate.st/bns/theseus.x/extensions/pithos/updates.json"
|
|
}
|