Mount AWS S3 as a Windows Drive with rclone

What rclone can mount an S3 bucket as a Windows drive letter, making it appear in File Explorer like a local drive. This guide covers configuring one S3 remote, writing a mount batch file, and optionally starting it at sign-in. You need an AWS account with an S3 bucket and IAM user, rclone for Windows, and WinFSP installed (required for rclone mount on Windows). Why Faster access: Browse S3 in File Explorer without separate apps or consoles. Simplicity: Open, copy, rename like a normal drive letter. Integrations: Any Windows app that works with drive letters can work with S3. How Step 1: Install rclone + WinFSP Download rclone for Windows (https://rclone.org/downloads/). Install WinFSP (https://winfsp.dev). rclone uses it to provide a filesystem. Step 2: Add rclone to PATH (optional but recommended) System Properties → Environment Variables → Path → add the folder containing rclone.exe. Verify: open PowerShell → rclone version. Step 3: Create an rclone S3 remote Run: rclone config Choose: New remote → name (e.g., rclone-mapped-drive) Storage: s3 Provider: AWS Region: your bucket region (e.g., us-east-1) Access Key ID / Secret Access Key: use IAM user with bucket-scoped policy Leave advanced defaults unless you need SSE/ACL tweaks Test: rclone ls rclone-mapped-drive:your-bucket Step 4: Make a mount batch file Example (template; adjust paths/names/drive letter): ...

October 15, 2025 · 3 min · 616 words · Sagar Nayak

FolderSync + AWS S3: Private Android Photo Backup

What FolderSync is an Android app that syncs local folders to S3-compatible storage. This guide sets up a private S3 bucket with a scoped IAM user and maps it to your device’s camera folder for automatic, private photo backup. You need an AWS account to start. Why Own your data: No Big Tech gallery lock-in. Reliability: S3 durability + Intelligent-Tiering for cost control. Simplicity: No self-hosted NAS, static IP, RAID, or server maintenance. How Step 1: Create S3 bucket (Region: us-east-1 recommended) Name: your choice (e.g., mobile-device-bkp). Region: us-east-1 (often lowest cost; change if you need locality). Block Public Access: ON (keep the bucket private). Versioning: optional but recommended for safety. Storage class: add a lifecycle rule to transition objects to Intelligent-Tiering immediately. Step 2: Create IAM policy (access only this bucket) ...

October 12, 2025 · 2 min · 347 words · Sagar Nayak

Expense Tracker (Part 3/5): AWS Setup

Series links: Part 1/5 - Introduction Part 2/5 - Database Planning Part 3/5 - AWS Setup (you are here) Part 4/5 - Backend APIs Part 5/5 - Frontend What A light AWS setup to hold two things: your files (bills) and your data (transactions). Why S3 is reliable and affordable for documents/photos. RDS PostgreSQL gives you a managed database without running servers. How S3 bucket for web hosting (public read) Create a bucket for the static site (e.g., my-expenses-web). Make it public-read so the HTML/CSS/JS can be fetched by browsers. Optionally use CloudFront in front; with OAC you can keep the bucket private and still serve publicly via the CDN. Alternative hosts: Netlify, Vercel, or any simple web server. S3 bucket for documents (private) Create a separate bucket for bills/receipts (e.g., my-expenses-docs). Block public access. Do not expose this bucket directly. Files are only opened via the backend (temporary links or redirects). Optional: lifecycle rule to move older files to cheaper storage. PostgreSQL on RDS (or use your own Postgres) A small instance is enough to start. Create a database and run the two tables from Part 2. IAM users/roles Backend role/user (documents bucket): allow only s3:PutObject, s3:GetObject, s3:DeleteObject, and s3:ListBucket on the docs bucket (preferably scoped to a prefix). Deployment user (web bucket): allow s3:PutObject and s3:ListBucket on the web bucket to upload new site files. If using CloudFront, also allow cloudfront:CreateInvalidation for your distribution. Keep permissions limited to specific ARNs. Networking & HTTPS Expose your backend over HTTPS (any domain or IP works). If you use a domain, add DNS (Route 53 or any registrar) and a certificate (ACM or your TLS setup). ...

June 6, 2025 · 2 min · 341 words · Sagar Nayak

Deploy Angular to AWS S3 with GitHub Actions

What You can directly push your angular build to aws s3 from github using github action. How For this you need aws iam with s3 access and cloudfront access ( if you are using CloudFront to serve the s3 resources ). the action script is name: Deploy to S3 on: push: branches: - master jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Node JS uses: actions/setup-node@v4 with: node-version: 'lts/*' - name: Install dependencies run: npm install --legacy-peer-deps - name: Build Angular project run: npm run build --configuration=production - name: Sync S3 bucket uses: jakejarvis/s3-sync-action@master with: args: --delete env: AWS_S3_BUCKET: your-bucket AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'eu-west-2' SOURCE_DIR: 'dist/proj' - name: Invalidate CloudFront uses: chetan/invalidate-cloudfront-action@v2 env: DISTRIBUTION: your-cf-id PATHS: "/*" AWS_REGION: "us-east-1" AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} In the script above, replace your-bucket with your bucket name, your-cf-id with your CloudFront distribution ID, and set the AWS IAM credentials in the GitHub repository secrets tab. ...

December 18, 2024 · 1 min · 190 words · Sagar Nayak

Deploy a Static HTML Site to AWS S3 with GitHub Actions

What You can push your static HTML files with their related assets to AWS S3 directly from GitHub Actions whenever you push to GitHub. How You will need an AWS IAM user with access to S3 and CloudFront (if you are going to use CloudFront), and an S3 bucket to deploy into. name: Deploy to S3 on: push: branches: - master jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: submodules: false - name: Sync S3 bucket uses: jakejarvis/s3-sync-action@master with: args: --delete env: AWS_S3_BUCKET: your-bucket-name AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'us-west-1' SOURCE_DIR: '.' - name: Invalidate CloudFront uses: chetan/invalidate-cloudfront-action@v2 env: DISTRIBUTION: your-cf-id PATHS: "/*" AWS_REGION: "us-east-1" AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} If you are not using a CloudFront distribution to serve the S3 bucket, remove the Invalidate CloudFront step. ...

November 5, 2024 · 1 min · 161 words · Sagar Nayak