If the backend is primarily or exclusively for providing downloadable content, then Amazon's S3 is simple to use. S3 is simply a storage service, hence its name: Simple Storage Service (S3). With a storage service, you upload files, you download files. That's it.
You can arrange for uploaded files to be made available to others, either the general public or only specific recipients. Public visibility is simple: anyone can get the file if they know the URL. I assume public visibility is what you want.
Several Mac programs allow you to upload to S3. I use CyberDuck.
The way I upload files for public access is I tell CyberDuck to preserve the original file's permissions when it uploads to S3. I give the file on my Mac public-read access. Then I drag-and-drop the file (or an entire folder) to CyberDuck's window. It does all the uploading and permission handling.
To test public accessibility, I use Safari or another web browser, and paste the S3 URL into its URL bar. If the permissions are right on S3, I see the file. If not, I see an error message.
Here's a simple HTML page and Java applet I uploaded last month as a test for a
thread in Mac Programming:
http://tmp-etc.s3.amazonaws.com/simple/SimpleID.html
I made the files on my Mac and tested them there. Then I simply dragged them to CyberDuck and copied the URL of the HTML file.
S3 billing is by the gigabyte-month for storage used, plus 1 cent for each 10k GET requests (which is what your downloaders will be using), plus more for PUT requests (what an upload uses). Look at the AWS billing page.
It's not hard to setup an S3 account with a credit card. You can then experiment with CyberDuck (or other programs) doing uploads and public downloads and see what happens. If you stay under the 10k GET limit and 1 GB / month, your bill for a month will be a few pennies.
Google App Engine is not primarily a storage service. It's an app-running service. First, you must write a server-side program to run on it. If you're not already a programmer, that's a significant hurdle. Second, you must deploy that program to the service and manage it there. Then you use the URL to run the program, and it acts like a servlet or CGI, giving a response.
The program has access to some storage, but it's relatively limited in size. Not nearly as large or inexpensive as S3, which isn't surprising since Google App Engine is an app-running service, not a storage service.
Amazon's roughly equivalent app-running service is called EC2, but it's not exactly equivalent. You should read up on it if you might want to use it. Again, if you're not a programmer with some skills at setting up and using command-line tools, you'll have a significant initial hurdle to overcome.