Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsYou can save a screenshot to Amazon S3 just like any other file: upload it through the S3 console, use the AWS CLI, or send it from an application. For a local screenshot, the shortest repeatable command is aws s3 cp screenshot.png s3://YOUR_BUCKET/screenshots/screenshot.png. Choose a presigned URL when a browser or mobile app should upload without receiving AWS credentials; use multipart upload for large files or unreliable connections.
Choose the upload method that fits your workflow
The right method depends on who has access to AWS credentials, how large the file is, and whether an upload needs to resume after a failure. Any file type, including PNG, JPEG, WebP, or PDF screenshots, can be stored as an S3 object.
| Method | Best for | Credential boundary | Size and recovery |
|---|---|---|---|
| S3 console | Occasional manual uploads | A signed-in AWS user or role uploads directly. | One object can be up to 160 GB in the console; it is not a repeatable automated workflow. |
| AWS CLI | Local files, scripts, and repeatable operator workflows | The CLI uses credentials configured on the machine. | aws s3 cp automatically uses multipart upload for large files. |
| Backend SDK or REST API | An application server that controls upload policy and metadata | The backend’s IAM identity uploads to S3. | A single PUT supports up to 5 GB; larger objects need multipart upload. |
| Presigned PUT URL | Browser and mobile uploads where file bytes should go directly to S3 | A trusted server signs a specific, temporary upload; the client does not get AWS credentials. | The URL’s method, object key, expiry, and any signed headers constrain the upload. A retry or replacement to the same key can replace the existing object. |
| Multipart upload | Large objects or networks where interrupted transfers are likely | Depends on whether the multipart upload is initiated by a backend, CLI, or another authorized client. | Parts can be uploaded in parallel and retried individually; abandoned parts need lifecycle cleanup. |
Amazon Web Services recommends multipart upload for objects of 100 MB or larger. Its current upload documentation describes a 50 TB maximum object size through the multipart API, compared with a 5 GB limit for a single PUT. The console’s single-object limit is 160 GB. These are different upload paths, so do not treat the 5 GB PUT limit as the console or multipart limit.
Upload a screenshot manually in the S3 console
- Open the Amazon S3 console and select the destination bucket.
- Open the folder-like prefix where the screenshot belongs, or choose the root of the bucket. An S3 prefix is part of the object key; it is not a separate filesystem folder.
- Choose Upload, add the screenshot file, and review the upload settings, including encryption where applicable.
- Start the upload. After it completes, confirm the object key and file size in the bucket.
The console supports a single object up to 160 GB. Before uploading, verify the bucket and prefix carefully: a successful upload to the wrong location is still the wrong result. The AWS identity you use needs permission to write the destination object. Do not make a bucket public just to enable uploads.
#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Use the AWS CLI for a local screenshot
For a screenshot already on your computer, configure AWS credentials for an identity permitted to write to the destination, then run:
aws s3 cp screenshot.png s3://YOUR_BUCKET/screenshots/screenshot.png
Replace YOUR_BUCKET with the bucket name. The final path is the object key: this example stores the object as screenshots/screenshot.png. To keep captures organized, use a deliberate prefix and collision-resistant filenames, for example screenshots/2026/09/30/homepage-unique-id.png. Uploading a new file to an existing key replaces that object’s current contents unless versioning is enabled.
Upload other file types
Change the local filename and destination key to match the file. For example, a PDF can be uploaded with:
aws s3 cp report.pdf s3://YOUR_BUCKET/reports/report.pdf
The CLI’s high-level aws s3 cp command automatically performs multipart upload for large files. AWS documents a way to tune transfer concurrency with the default.s3.max_concurrent_requests setting; raise concurrency only when your network and destination can handle the additional parallel requests.
Recommended Free Tools
Rank #2
- Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Check that the upload worked
Confirm that the command completed successfully and that the object appears at the expected key in the bucket. If the upload is part of automation, preserve the command’s exit status and treat an unsuccessful transfer as a failed job rather than assuming a local file’s presence means it reached S3.
Let a browser or mobile app upload with a presigned URL
Do not put long-lived AWS access keys in a browser, mobile app, or desktop client. Instead, a trusted backend should create a presigned URL for a specific bucket, object key, HTTP method, and expiration. The client receives that URL and uploads the file bytes directly to S3:
curl --upload-file screenshot.png "PRESIGNED_PUT_URL"
PRESIGNED_PUT_URL is not a value to invent or a permanent endpoint: your backend must generate it with the intended destination and, when applicable, the headers the client is expected to send. Treat the URL as a temporary bearer capability. Anyone who obtains it can use the delegated operation while it remains valid.
Make the signing endpoint safe
- Use a short expiration appropriate to the upload flow, and keep AWS credentials on the trusted server.
- Generate object keys on the server rather than trusting a user-supplied filename. A supplied name can be unsafe, confusing, or collide with an existing object.
- Validate expected content length and content type in the service that issues the URL. Supplying a content type helps when clients later rely on correct browser rendering, but it is not a substitute for validating the uploaded content.
- Use Signature Version 4 and checksum headers when integrity matters. AWS documents CRC, SHA, MD5, and other checksum algorithms for SigV4 presigned uploads.
- Remember that a PUT to an existing key replaces that object’s current content. Use unique keys or bucket versioning when retaining previous captures matters.
A presigned URL lets the client send bytes to S3 without your application server relaying the file, but your backend still controls who gets permission, which object can be written, and for how long.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Use an application backend for controlled uploads
A backend can upload through S3’s PutObject operation, set object metadata such as content type, and request SSE-KMS encryption when policy requires it. The backend’s IAM identity needs write permission on the destination object. A single PUT is limited to 5 GB; use multipart upload above that limit.
This approach keeps upload policy in a controlled service and is useful when the server must inspect, validate, or transform a file before it reaches S3. The trade-off is that the application handles the file transfer rather than sending it directly from the client to S3. If the application should not relay the bytes, have it issue a presigned URL instead.
Use multipart upload for large files or unreliable networks
Multipart upload splits one object into separately uploaded parts. Parts can be sent in parallel, and a failed part can be retried without transmitting parts that already succeeded. AWS recommends this approach for objects 100 MB or larger; the multipart API supports a single object up to 50 TB.
- Start a multipart upload for the intended object key.
- Upload the object’s parts, optionally in parallel, keeping track of the successful parts.
- Retry failed parts rather than restarting successful ones.
- Complete the multipart upload with the successful parts so S3 assembles the final object.
Multipart upload is more operationally involved than a normal CLI copy or a single PUT. Configure an S3 lifecycle rule with AbortIncompleteMultipartUpload so parts left behind by interrupted or abandoned uploads are cleaned up instead of continuing to consume storage. If using KMS-encrypted multipart uploads, the caller needs the KMS permissions required to create data keys and decrypt parts during completion.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #4
- Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Protect object access, encryption, and integrity
Keep access private by default
Grant only the object-level write permissions the uploader needs. Keep S3 Block Public Access enabled unless a documented public-delivery design requires otherwise. For downloads, use authenticated access or presigned GET URLs rather than opening the bucket to the public just to make an uploaded screenshot viewable.
Choose an encryption setting deliberately
New S3 objects are encrypted at rest with SSE-S3 by default. SSE-KMS is available when controlled key management is required. If the bucket or organization has an encryption policy, make sure the upload method and the caller’s permissions satisfy it; for KMS-encrypted multipart uploads, the additional KMS permissions described above apply.
Set content type and verify integrity
Set a content type such as image/png when applications depend on a browser rendering the object as an image. Use checksums to detect corruption when integrity verification matters. For presigned uploads, the checksum header must fit the signed request and the checksum algorithm supported by the SigV4 upload flow.
Decide what should happen when a key is reused
An S3 object key identifies the current object at that location. Uploading again to the same key replaces the prior object unless versioning is enabled. Enable versioning or generate unique keys if accidental replacement would be costly. If versioning is enabled, consider lifecycle cleanup for old screenshot versions as well as incomplete multipart uploads.
Best Value
- Plug-and-play expandability
- SuperSpeed USB 3.2 Gen 1 (5Gbps)
Or skip the browser setup
If the file you need is a website screenshot, ScreenshotNeo can capture it through one GET request; you can then upload the returned file to S3 using the CLI command above. This does not replace your S3 upload step. The API accepts a URL and returns a clean screenshot as PNG, JPEG, or WebP, or a PDF. Its cookie-consent handling accepts the banner as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off.
For example, this request captures Stripe and writes the returned image to a local file:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. After the request succeeds, upload shot.webp to your bucket with aws s3 cp shot.webp s3://YOUR_BUCKET/screenshots/shot.webp. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed; responses say which page verdict applied and whether the request was billed. ScreenshotNeo also provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for ScreenshotNeo’s free plan.
Troubleshoot common upload problems
- Access denied: Check that the identity used by the console, CLI, or backend has permission to write the target object. A presigned URL also depends on the signing identity’s permissions and the URL’s validity.
- The object is missing or in the wrong place: Check the bucket name and complete key, including capitalization and prefixes. S3 keys are not local filesystem paths.
- A prior screenshot disappeared: The upload likely reused the same object key. Use unique names or enable versioning to retain previous object versions.
- A presigned upload is rejected: Confirm it has not expired, uses the intended HTTP PUT method and key, and includes the signed headers expected by the backend. The client must send the request that was authorized, not a different method or mismatched header set.
- A very large single PUT fails: A single PUT supports up to 5 GB. Use multipart upload for larger objects; the console’s object limit and multipart’s limit are different.
- Interrupted multipart uploads leave storage behind: Add an
AbortIncompleteMultipartUploadlifecycle rule to clean up unfinished uploads. - An image does not render as expected in a browser: Check the object’s content type, such as
image/png, and verify that the consuming client is accessing the intended object.
Plan for transfer time, retries, and storage cost
Upload time depends on file size, connection speed, and available transfer concurrency; the cited S3 upload limits do not promise a particular transfer rate. For large or interruption-prone transfers, multipart upload’s parallel parts and individual retries can avoid retransmitting the entire file. Tune concurrency with care, because more simultaneous requests consume more network and client resources.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteStorage cost depends on what you retain, not just whether the initial upload succeeds. Reusing a key replaces the current object, while versioning preserves prior versions; abandoned multipart parts can also remain until cleaned up. Choose retention and lifecycle rules based on whether older screenshots and interrupted uploads need to remain available.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

