vendix-s3-storage

Extracts S3 keys from signed URLs and generates fresh presigned ones.

5|Updated Aug 23, 2025
One-click install
npx skills add https://github.com/Rzyfront/Vendix --skill vendix-s3-storage
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vendix-s3-storage
Source: https://github.com/Rzyfront/Vendix/tree/main/skills/vendix-s3-storage
Command: npx skills add https://github.com/Rzyfront/Vendix --skill vendix-s3-storage

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill prevents storing expiring signed S3 URLs in the database by extracting the underlying S3 key and saving the key instead of the full URL.

Core Features & Use Cases

  • Sanitize before storage: extract the S3 key from a signed URL or accept a key as-is, ensuring only the key is persisted.
  • Presigned URL generation for frontend: generate fresh presigned URLs on read to keep access secure and short-lived.
  • Consistent data model: avoids data churn by preventing expired links from causing 403 errors and improving cacheability.
  • Use Case: when users upload images to S3 and the app stores image_url fields, retrieve a new presigned URL for display without storing long-lived URLs.

Quick Start

Use the S3 helper and S3Service to sanitize image_url inputs before persisting to the database and to sign URLs when returning data to the client.

Frequently Asked Questions about vendix-s3-storage

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I stop storing expiring AWS S3 presigned URLs in my database?

To stop storing expiring AWS S3 presigned URLs, extract the underlying S3 key from the signed URL before persistence. This ensures only the static key is saved, preventing expired links and 403 errors.

How does storing S3 keys instead of full presigned URLs improve data consistency?

Storing S3 keys instead of full presigned URLs improves data consistency by avoiding data churn from expired links. The database retains a stable key, and fresh presigned URLs are generated only on read for frontend consumption.

What is the best way to generate fresh presigned URLs for frontend display from stored S3 keys?

The best way to generate fresh presigned URLs for frontend display is to retrieve the stored S3 key from the database and pass it through an S3Service to sign a new, short-lived URL on read.

How do I sanitize image_url fields before persisting them to the database?

To sanitize image_url fields before persisting, parse the incoming signed S3 URL using helper logic to extract the core S3 key. Save this extracted key directly in your data access layer.

Do I need a backend storage service to sanitize and sign S3 URLs?

Yes, you need a backend storage service to sanitize S3 URLs on write and sign them on read. This service integrates into your data access layers to handle URL parsing and secure link generation.

Why do my stored S3 image URLs return 403 errors over time?

Stored S3 image URLs return 403 errors over time because presigned URLs expire. Persisting the full signed URL means the link becomes invalid, whereas storing the S3 key avoids this issue.