1

I am using RecorderJs to record audio. When done; I want to save it to amazon S3 (I am using knox library) via server (because I don't want to share the key).

recorder.exportWAV(function(blob) {
    // sending it to server 
});

On the server side, using knox ...

knox.putBuffer(blob, path, {"Content-Type": 'audio/wav', 
                            "Content-Length": blob.length},
                           function(e,r) {
                               if (!e) {
                                   console.log("saved at " + path);
                                   future.return(path);
                               } else {
                                   console.log(e);
                               }
                           });

And this is saving just 2 bytes!!

Also; is this the best way to save server memory. Or are there better alternatives?

I also see this: Recorder.forceDownload(blob[, filename])

Should I force download and then send it to server?

Or should I save to S3 directly from my domain. Is there a option in S3 which cannot be hacked by other user trying to store data on my server?

ben75
  • 29,217
  • 10
  • 88
  • 134
shrw
  • 1,719
  • 5
  • 27
  • 50

1 Answers1

0

Or should i save to S3 directly from my domain. Is there a option in S3 which cannot be hacked by other user trying to store data on my server?

You can use S3 bucket policies or AIM policies on S3 buckets to restrict access to your buckets.

Bucket Policies:http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucketPolicies.html

AIM Policies: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingIAMPolicies.html

There are several related threads on SO about this too, for example:

Enabling AWS IAM Users access to shared bucket/objects

AWS s3 bucket policy invalid group principal

Community
  • 1
  • 1
Rico
  • 58,485
  • 12
  • 111
  • 141