This evening we rolled out a Downloads section for all repositories wherein repo members can upload files. Tag releases are also listed beneath as an added bonus.
Uploading a file is straightforward: select your file, write a description, and click upload.

You’ll see a progress bar appear and if all goes well the page will reload.

If it’s a public repository, the upload’s URL will look something like this:
http://
cloud.github.com/downloads/pjhyett/blackjax/blackjax.jpg
If it’s a private repository, the URL will look something like this:
https:// s3.amazonaws.com/github/downloads/pjhyett/blackjax/blackjax.jpg?AWSAccessKeyId=1DWESVTPGHQVTX38V182&Expires=1234304884&
Signature=NcI6lHF1TjjIv4msbgxtAIMkYN8%3D
The difference is really important. Public repositories will be able to take advantage of Amazon’s Cloud Front service, a CDN that should keep downloads speedy worldwide. Private repositories generate a URL that’s valid for only one hour (from the time the downloads page is accessed) to make sure your private uploads are safe.
Please keep in mind that any file you upload is counted against the repository owner’s space allotted by their account’s plan.
The last thing worth mentioning is the uploader requires Flash Player 9.0.1 or greater. We’ve caught some flack in the past about our limited use of Flash, but we promise we don’t add it lightly. Using a slightly modified plugin hosted right here on GitHub, we are able to upload files directly to S3 instead of tying up our servers.
If you’re still one of the holdouts, do yourself a favor and install Flash, install FlashBlock for Firefox or clicktoflash for Safari, and make sure you add github.com to its whitelist. Now you can have all of the flash you want and none that you don’t.



> If you’re still one of the holdouts, do yourself a favor and install Flash
Sorry, ain’t gonna happen. I’m sticking with the open Web.
I do appreciate the effort you take to keep everything as unencumbered as possible though; thanks.
I’m afraid I’m a holdout too. The less proprietary software we’re forced to use the better.
I love GitHub, I love it’s service and I got really excited about downloads … right up to the point you said it required flash. Really, to upload a file? Flash is not required.
Maybe if you allow people to have a ‘downloads’ section but they can just point to the download somewhere else. For example, I too could easily host my downloads on AWS using my own free, open and unencumbered Perl API to the Amazon Web services, hosted right here on GitHub (for which I thank you again):
http://github.com/andychilton/awssum/
Is there any order applied to the tag downloads list? It seems random at first glance. See:
http://github.com/grempe/amazon-ec2/downloads
Sorting lexicographically by tag name or by tag creation date would probably make sense.
The upload feature would be more exciting if it meant we could upload ‘release’ versions of gems and tag them for inclusion in the github gem repo without the username- prefix. Would be great if rubyforge could be removed from the ‘official gem’ release process. I know there is more that would need to be done on this front but hopefully this is only the first step.
Cheers.
Double that for order, can we have better ordering for tagged versions?
@yaroslav yes, a fix will pushed shortly for that
I agree. Even though I have flash I prefer not to use it (see the many examples of crap flash-only websites out there). Can you throw in a bit of graceful degradation for those who don’t have flash? The majority will have it but the minority who don’t should still be able to upload files…
The closed source flashplayer has such a horrible security record. No way I’m installing that.
andychilton: I love GitHub, I love it’s service and I got really excited about downloads … right up to the point you said it required flash. Really, to upload a file? Flash is not required.
I think the point of it being flash-based is it connects directly to S3 from the end-user’s machine and uploads straight to Amazon without going through the github servers. Whereas the perl version would need running on a server to proxy the file from the end-user to S3.
You could probably just serve a (cached of course) javascript library from the same S3 domain, and use XHR from that library to POST a file without having to use a swf to bypass same-origin policy
Using flash where it’s appropriate is fine. Keep doing the features how you need to do them. People who have an irrational fear of flash will continue to find work arounds like they always have.
I mean how do they watch hulu.com? :)
Enabling binary uploads and even throwing in some CDN courtesy is cool but that Flash requirement might be a show stopper (for me). Please provide an alternate HTML-only S3 upload form. I don’t need flashy upload progress bars. Give me another form input (and post it as “Content-MD5”) where I’ll paste the MD5 of the file to be uploaded and I will only see the success page only if the upload is “really” successful. Pretty simple, %100 open standards.
Any reason we couldn’t get (or write) a CLI client to push uploads to GitHub’s S3? I understand the desire to not pass uploads through GitHub’s servers, but I’m still not going to run Flash for this. :p
Just thought I’d chime in and give a thumbs up to this feature. Using Flash is fine, and, as you mention, there are tools that allow you to control your Flash-browsing experience—to the point of only allowing it on Github. I echo @myobie’s comment above.
Wow, I must say that all this anti-flash sentiment brings a tear to my eye. I hate flash, and the other GitHub guys know it (all too well I’m afraid).
As a few of you have mentioned, the choice to use flash was indeed to avoid passing uploads through our servers when it wasn’t needed. Now, that being said, we certainly want to provide a means of upload that doesn’t involve flash. Something that could be used in deploy scripts, or even the github gem would rock. `gh upload filename.zip` anyone? We’re looking for a way to make it happen, if anyone has some ideas we’d love to hear them here in comments, on support.github.com or at support@github.com.
@myobie, it’s not irrational at all, flash has some serious performance issues and has for long time. Adobe’s made it rather clear that they’re going to focus on streaming video and not waste time fixing the performance issues. Loading up your browser without flash shouldn’t have any perceivable change in performance when flash is only being used for a few ads, but it is quite a noticeable difference, and that makes me a sad panda. But then, I am willing to open Firefox to load flash for a few pages, like the only good flash game out there
Nothin’ wrong with a little flash. As mentioned in the article you can just get a flash blocker and whitelist github (and hulu, and youtube, and… and…). Do we really have performance issues with flash these days? I mean, my machine has so much unused memory and so many extra CPU cycles I really couldn’t care less — especially if it makes GitHub even more seamless.
In short, I love this! Thanks guys! :)
+1 for `gh upload filename.zip`
tekkub: Thanks for the update. Using the github gem seems like a great middle ground.
You really should have a web-compatible upload mechanism.
Using flash is this day and age is a bit short-sighted. Maybe back in the 90s when browsers sucked… but now? At least provide it only as an alternative for people stuck in the 90s.
+1 for adding support for a command-line upload. Hopefully with links to docs on the upload page.
Not that I’m against flash, it’s just that they still haven’t worked out a stable version for 64bit on linux – I’m using swfdec for now, but it seems like the uploader doesn’t work with that. Maybe with gnash?
You don’t need Flash to upload directly to S3.
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1434
So you’re offering free, s3-backed bandwidth?
I just tried the upload feature today, and it’s very cool. However, I wish I could edit the file’s description after it has been uploaded.
Also, files uploaded in this way don’t show up in the overlay that you get when you click the Download button on the repo’s “front page”.
Hello, there is another good reason to provide an alternative to flash which has not been mentioned yet.
For those of us who are blind and use assistive technology, flash is pretty much a show stopper on windows. Also, I am not familiar with the GUI accessibility software on linux (orca), and I do not know how well flash works with it. For this situation, a command line program that would be able to manage uploads and allow removing them would be a good option.
Is this possible?
I'm basically not against flash, but this uploader seems to break more than not. Maybe it has something to do with the Flash 10 not native on Linux, but it is annoying at least, and it makes the whole thing pointless. It displays the releases I try to upload, but accessing them gives an access forbidden xml. Seems to be a showstopper.
.. on 64 bit .. my bad.
Using the github gem seems like a great middle ground.
Essay Writing | Research Paper Writing | Term Paper Writing
I am not familiar with the GUI accessibility software on linux (orca), and I do not know how well flash works with it. For this situation, a command line program that would be able to manage uploads and allow removing them would be a good option.
Thesis Writing | Dissertation Writing
I'm basically not against flash, but this uploader seems to break more than not. Maybe it has something to do with the Flash 10 not native on Linux, but it is annoying at least, and it makes the whole thing pointless. It displays the releases I try to upload, but accessing them gives an access forbidden xml. Seems to be a showstopper.
Fancy USB | Greatest Celebrities | Alternative Christmas Gifts
I love GitHub, I love it’s service and I got really excited about downloads .free online games
i installed flash and it is working well for me. This is amazing how this works. this is such a great service to use. keep up the good work.
Orlando Personal Injury Lawyers
Double that for order, can we have better ordering for tagged versions?free games