Mercurial
diff mrjunejune/main.c @ 204:e5aed6c36672
[Notes] Added icons and updated styling a bit. Probalby usable now.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Sun, 15 Feb 2026 11:02:13 -0800 |
| parents | b9b184b3303c |
| children | 240337164a80 |
line wrap: on
line diff
--- a/mrjunejune/main.c Sun Feb 15 09:13:09 2026 -0800 +++ b/mrjunejune/main.c Sun Feb 15 11:02:13 2026 -0800 @@ -1195,7 +1195,17 @@ char s3_key_original[512]; char s3_key_processed[512]; snprintf(s3_key_original, sizeof(s3_key_original), "uploads/%s/%s", uuid, filename); - snprintf(s3_key_processed, sizeof(s3_key_processed), "uploads/%s/processed.webp", uuid); + + // Only use .webp for images + int is_image = (strncmp(content_type, "image/", 6) == 0); + if (is_image) + { + snprintf(s3_key_processed, sizeof(s3_key_processed), "uploads/%s/processed.webp", uuid); + } + else + { + s3_key_processed[0] = '\0'; // No processed version for non-images + } // Insert into database const char *insert_query = @@ -1238,11 +1248,23 @@ return resp; } + // Build public URL using CloudFront or S3 + char public_url[512]; + if (g_s3_cloudfront_url[0]) + { + snprintf(public_url, sizeof(public_url), "%s/%s", g_s3_cloudfront_url, s3_key_original); + } + else + { + snprintf(public_url, sizeof(public_url), "https://%s.s3.%s.amazonaws.com/%s", + g_s3_bucket, g_s3_region, s3_key_original); + } + // Build response - char *response_body = Dowa_Arena_Allocate(arena, 4096 + strlen(presigned.url)); - snprintf(response_body, 4096 + strlen(presigned.url), - "{\"media_id\":%lld,\"upload_url\":\"%s\",\"expires\":%d}", - (long long)media_id, presigned.url, g_s3_url_expires); + char *response_body = Dowa_Arena_Allocate(arena, 4096 + strlen(presigned.url) + strlen(public_url)); + snprintf(response_body, 4096 + strlen(presigned.url) + strlen(public_url), + "{\"media_id\":%lld,\"upload_url\":\"%s\",\"public_url\":\"%s\",\"expires\":%d}", + (long long)media_id, presigned.url, public_url, g_s3_url_expires); S3_Presigned_URL_Destroy(&presigned);