hudsantos
05/09/2023, 8:07 PMhudsantos
05/09/2023, 8:07 PMWalshy | Pages
05/09/2023, 8:07 PMErisa | Support Engineer
05/09/2023, 8:07 PMhudsantos
05/09/2023, 8:08 PMkonga
05/09/2023, 9:09 PMkonga
05/09/2023, 9:12 PMhudsantos
05/09/2023, 10:25 PMs3fs-fuse
to monut a bucket as a filesystem is really not recommended yet. It apparently mounts successfully, being allowed by token and by IP address, but some created files remains with 0B size. Also got many input/output errors. Tested this today within a very reliable Ubuntu 22.04.2 LTS - DigitalOcean droplet/network. Also after tests finished, I've housekeep the token successfully but could not delete the bucket itself. It says "Bucket cannot be deleted because it isn't empty". But the [Objects] tab says: "Your bucket is ready. Add files to get started." instead of list those objects so that I could delete them and then delete the bucket afterwards.
We won't use R2 in production yet due to this mandatory aspect in our use case. Unfortunately it has to be available as a filesystem presented to the operating system.
If anyone has a different/good experience with that combination in production I'd love to hear details.
ThanksChaika
05/09/2023, 10:29 PMChaika
05/09/2023, 10:30 PMChaika
05/09/2023, 10:33 PMhudsantos
05/09/2023, 10:34 PMhudsantos
05/09/2023, 10:49 PMAmmar
05/09/2023, 11:16 PMls
lsf
tree
returns no results as if the bucket was empty. I am sure I tested this a few days ago and the list commands were working fine.
I've tried creating a new bucket. But I am having the same issue. My api key has permissions Edit: Allow edit access of all objects and List, Write, and Delete operations of all buckets
hudsantos
05/10/2023, 12:36 AMhudsantos
05/10/2023, 2:03 AMChaika
05/10/2023, 2:06 AMitsme
05/10/2023, 5:09 AMAlHill
05/10/2023, 1:10 PMelse if(route === "/getSignedURL" || route === "/getDeleteURL"){
const method = route === "/getDeleteURL" ? "DELETE" : "GET"
const { key } = await request.json()
console.log(key, method)
url.pathname = key
const { url: signedURL } = await r2.sign(
new Request(url, { method }),
{ aws: { signQuery: true }}
)
if(!signedURL){
return new Response(JSON.stringify({
message: "Cannot get signed URL",
code: 400
}), { status: 400 })
} else {
return new Response(JSON.stringify({ signedURL }))
}
}
AlHill
05/10/2023, 1:13 PMSid | R2
05/10/2023, 1:17 PMr2.sign
function from aws4fetch
?
If so, does surrounding the r2.sign
in a try/catch
show you what the problem was?AlHill
05/10/2023, 1:20 PMAlHill
05/10/2023, 1:21 PMAlHill
05/10/2023, 1:32 PMkian
05/10/2023, 1:35 PMAlHill
05/10/2023, 1:38 PMAlHill
05/10/2023, 1:39 PM<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your secret access key and signing method. </Message>
</Error>
AlHill
05/10/2023, 2:08 PMkian
05/10/2023, 2:13 PMkian
05/10/2023, 2:13 PM