title: AWS S3 SDK V3 for Node.js - GetObjectCommand v/s getSignedUrl
body: <p>I'm building a web app in which I need to let users upload documents to their account and also read all the documents they have uploaded. In addition, I would like to allow users to be able to upload a profile photo as well. To handle file storage, I chose AWS S3.</p>
  <p>However, I'm having a lot of trouble with the SDK (v3). Bear in mind I never used the previous version (v2). I installed 2 packages via npm, <a href="https://www.npmjs.com/package/@aws-sdk/client-s3" rel="noreferrer">@aws-sdk/client-s3</a> and <a href="https://www.npmjs.com/package/@aws-sdk/s3-request-presigner" rel="noreferrer">@aws-sdk/s3-request-presigner
  </a>. I'm having trouble finding proper documentation for all the functionality I need. The <a href="https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/globals.html" rel="noreferrer">docs</a> I have come across are not exactly beginner friendly and don't go into a lot of detail explaining all the functionality. For example, in the case of <code>GetObjectCommand</code>, I am able to get a response but I'm unsure about how to actually tap into the Body and use the contents.</p>
  <p>I'm also unsure about whether I should be using <code>GetObjectCommand</code> or <code>getSignedUrl</code> for my use case. For context, I'm using Express to build my server.</p>
  <p>My questions -</p>
  <ol>
  <li>Is there any easier way to interact with S3 for my app rather than using the SDK? By easier I just mean properly documented.</li>
  <li>Am I looking at the wrong documentation? Are there other resources that make this simpler?</li>
  <li>What are the situations where one would use <code>getSignedUrl</code> over <code>GetObjectCommand</code> to read and then render stored files for a web app?</li>
  </ol>
  <p>I will be extremely grateful for any and all help.</p>