<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged baas</title>
<link>https://coderlegion.com/tag/baas</link>
<description>Powered by Question2Answer</description>
<item>
<title>DevLog 20250804: Simple File Uploading Service (A Request Unfulfilled)</title>
<link>https://coderlegion.com/4422/devlog-20250804-simple-file-uploading-service-a-request-unfulfilled</link>
<description>&lt;p&gt;Revision: 001&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(This post identifies a problem and is not generating a solution for it yet.)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-problem&quot;&gt;The Problem&lt;/h3&gt;
&lt;p&gt;Wouldn’t it be nice if we had a simple way to share our scripts so others could use them immediately?&lt;/p&gt;
&lt;p&gt;Pure attempted this with &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Pure-the-Language/CentralSnippets&quot;&gt;CentralSnippets&lt;/a&gt;, which makes it straightforward on the client side (just call something like &lt;code&gt;Pull(&quot;Markdown/BuildToC&quot;, disableSSL: false)&lt;/code&gt;) while relying on GitHub’s PR-based upload process.&lt;/p&gt;
&lt;p&gt;For Divooka, we want to achieve something similar - perhaps even simpler. But file sharing inevitably raises three unavoidable concerns:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;User authentication&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API or user interface design&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;user-authentication&quot;&gt;User Authentication&lt;/h3&gt;
&lt;p&gt;When we’re logged in, we often take it for granted - but most platforms require an account to access core functions. For a file-uploading service, the question becomes: &lt;em&gt;which&lt;/em&gt; account system should we use?&lt;/p&gt;
&lt;p&gt;OAuth can help, but it doesn’t remove the fact that &lt;em&gt;users still need to create an account with the service&lt;/em&gt;. That, in turn, means there needs to be an account server.&lt;/p&gt;
&lt;p&gt;One possible simplification: GCP’s Firebase Authentication.&lt;/p&gt;
&lt;h3 id=&quot;content-management&quot;&gt;Content Management&lt;/h3&gt;
&lt;p&gt;Once uploaded, files could live on a dedicated file server, or be distributed via a CDN to reduce server load.&lt;/p&gt;
&lt;p&gt;Using a CDN is often the simplest long-term approach. However, you still need an intermediate server to communicate with the CDN - you can’t just expose it directly.&lt;/p&gt;
&lt;p&gt;Some platforms, like AWS and GCP, offer Signed URLs, which allow controlled access without routing through a central server first.&lt;/p&gt;
&lt;h3 id=&quot;api-or-access-interface&quot;&gt;API or Access Interface&lt;/h3&gt;
&lt;p&gt;Users might upload files via:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web forms&lt;/li&gt;
&lt;li&gt;HTTP APIs&lt;/li&gt;
&lt;li&gt;CLI tools&lt;/li&gt;
&lt;li&gt;Dedicated protocols&lt;/li&gt;
&lt;li&gt;Client-side libraries&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The challenge is deciding which of these methods to support and how to balance simplicity with flexibility.&lt;/p&gt;
&lt;h3 id=&quot;accessing&quot;&gt;Accessing&lt;/h3&gt;
&lt;p&gt;Accessing the files is the easy part: generate a URL, and the file can most likely be downloaded directly over HTTP.&lt;/p&gt;
&lt;h3 id=&quot;the-ideal-picture&quot;&gt;The Ideal Picture&lt;/h3&gt;
&lt;p&gt;So, what would a general-purpose, &lt;em&gt;ideal&lt;/em&gt; file-uploading service look like?&lt;/p&gt;
&lt;p&gt;Key aspects might include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Quick deployment and re-deployment of multiple dedicated file servers&lt;/li&gt;
&lt;li&gt;Configurable backends for storage and delivery&lt;/li&gt;
&lt;li&gt;Fine-grained access control for uploaded resources&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of which sounds like we’re edging into &lt;strong&gt;BaaS (Backend-as-a-Service)&lt;/strong&gt; territory.&lt;/p&gt;
</description>
<category>Web Dev</category>
<guid isPermaLink="true">https://coderlegion.com/4422/devlog-20250804-simple-file-uploading-service-a-request-unfulfilled</guid>
<pubDate>Mon, 04 Aug 2025 19:44:19 +0000</pubDate>
</item>
</channel>
</rss>