-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Alternative download location #13953
Comments
Our current host, Bitbucket, is known to apply rate limiting. In some cases, it's too aggressive. |
Bintray has a free plan for FOSS project. Last time I checked, the stats are very minimal (last 30 days only, or something like that). On top of that, we don't know if there is a similar throttling or not. |
While we can always use Github Releases feature, there is zero analytics available. Also, someone should investigate the rate limit. |
What about Amazon S3? |
We may have a CDN sponsoring a download space soon. Stay tuned. |
@ariya Great! |
What kind of analytics are you looking forward too? I think that any 1 Gbit cheap vps host will do (http://vpsdime.com/), with cloudflare in front of it. It works as cdn and you can see their free analytics as well as be protected against ddos. https://www.cloudflare.com/features-analytics/ But of course, free sponsor is better. |
@peixotorms DIY is not an alternative. We couldn't afford any extra time for maintenance. |
Stumbled into this issue coming from #13951. Installing randomly fails due to bitbucket returning HTTP code 429 (rate limit). Did you try to contacting bitbucket to have the limit removed on your account? They seems to be quite happy at helping open source projects and they may very well lift the limit for phantomjs. |
That last would be excellent. I've had close to a 50% failure rate on jobs recently because of the BitBucket 429. |
Same problem here. We are using the frontend-maven-plugin to build everything and I also get 429 errors all of the time. |
Also having this issue too with Heroku. |
Running into this issue as well 👍 |
@siboulet I'm rather swamped right now. If you want to help and talk to Bitbucket to see what they could do, that will be helpful. Also a reminder to everyone: there's no need for a stream of "me, too" comment. You can use the Subscribe button if you want to get notified of any further change or progress. |
@ariya Thanks for the update. My reply was to mark the severity of the issue more than anything rather than getting notified about updates, since the rate limiting causes deployment issues. |
@ariya I have opened a support issue with Bitbucket, reference BBS-28344. |
@ariya here is the response I received. Time to look for a new home for hosting the PhantomJS binaries.
|
I just noticed the issue of download limits on Bintray--if you're using JCenter (not sure if that now includes the non-Java hosting or whether that's branded separately), the whole point is to provide a public mirror, and they won't have rate limiting. No idea about analytics, though I know they provide at least basic download counts. |
- enables faster builds - prevents phantomjs rate limit (see ariya/phantomjs#13953)
We are trying to get a working setup with a CDN so that the downloads can be provided by the CDN. |
Temporary workaround: |
You can add binarys to GitHub and it is fast to download. You can also edit your 2.1.1 release to include the binarys in GitHub. |
What about RawGit.com? They are backed by MaxCDN and every time you tag a release, it's contents become automatically available. In my projects I just commit the build to Git (I know some people frown upon it), and so I automatically have CDN urls for direct download. E.G: check out the download links on this project page: http://download.github.io/picolog/
|
There is a lot going on in this thread ;). Thanks everyone for their help! The solution I implemented is actually pretty simple and I posted it at bitbucket rate limiting phantomjs |
@Download You probably missed the Requirement paragraph. Beside, RawGit doesn't provide uptime guarantee at all. |
Rawgit is free; the lack of support and uptime guarantee should be acceptable. Reviewing https://github.com/rgrove/rawgit/wiki/Frequently-Asked-Questions#i-need-guaranteed-100-uptime-should-i-use-cdnrawgitcom It's free so completely acceptable; it costs money (a lot) for 100% uptime (let alone a guarantee) most IaaS providers really don't even give you that. I've gotten 99.99% from Internap but that still gives you a few hours per month Lastly. Let's make sure we're realistic in our goals; and also uptime guarantee's generally are a cash return (or credit). It really doesn't mean your going to be up 100% of the time. It means they are going to try but will pay out for downtime.
|
@damm I think you're missing the point - the main requirement for the download server was good analytics, not 100% uptime (see the first post in this thread). I haven't found any mention of even simple download counters on RawGit... |
May I ask what part of the analytics you are interested in? Because if you are interested in 'real downloads' (meaning, by people installing PhantomJS vs Travis CI et al downloading it), then a middle ground solution might be a simple Download page in the static site (gh_pages branch) with a download link with an onclick handler that fires an event to GA. Because people will use that link and not the 'raw' rawgit URL (which looks daunting). But this would not count the automated build downloads. Whichever way you cut it, if the main download location is down often, what you will see is that people will start to create own mirrors... Which also means they will no longer be counted by analytics. What exactly does that information about the number of downloads of the binary give you that cannot be simply derived from stats counters on the page and download link? Technically, unless you are doing server-side counting (e.g. with log analyzers etc), you can't really track downloads. Not with say Google Analytics at least. So is this the requirement? A host that supports file downloads and that will report analytics on it? |
Analytics can be nice and you can definitely do that with Akamai,Fastly and most CDN's. Also like @Download said having a download page maybe helpful. Rubygems is hosted on S3 however you fetch get the links from rubygems.org for this 'Analytics' effect. It's also a SPOF (Single Point of Failure) |
Bitbucket is very unreliable. Most of our builds are failed because PhantomJS can’t be downloaded. PhantomJS maintainers are looking for alternative solutions, Medium/phantomjs repo is a temporary workaround: ariya/phantomjs#13953
New user <24hrs... Haven't managed to get phantomJS to download or build properly and i discover this thread. 8 months?! Pull your finger out guys... wanders off to find an alternative |
I get that it can be a showstopper when trying a new lib. It was for me. On the other hand, this is an open source project, so anyone could come up with a solution. Including you and me. The problem is that the people having the issue don't care about the analytics, whereas ariya (apparently) doesn't care so much about the downtime issue... I was prepared to create a PR to help place the file on CDN when I wrote my comment, but the requirements are too high for me to meet. So I too have given up on phantomjs. It's apparently a very good library but alas. |
Counting downloads that just aren't happening... Makes complete sense to me! A simple link to a mirror on the main download page would be nice... |
Hi @ariya have you given any more thought to the various CDN options listed above? |
not sure if anyone noticed but if you use
tried numerous times but a regular non-https download does work even though it mention it does use https eg. here the output
|
Github counts downloads (visible in API) and downloads are not rate-limited AFAIK. Example: Medium's fork of PhantomJS, Windows .zip release for 2.1.1: {
"url": "https://api.github.com/repos/Medium/phantomjs/releases/assets/1471657",
"id": 1471657,
"name": "phantomjs-2.1.1-windows.zip",
"label": null,
"uploader": { /* … */ },
"content_type": "application/zip",
"state": "uploaded",
"size": 18193653,
"download_count": 1731773,
"created_at": "2016-03-25T15:29:18Z",
"updated_at": "2016-03-25T15:29:21Z",
"browser_download_url": "https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-windows.zip"
} You can see example use of the API in my project website above (loaded with AJAX). Public API is rate-limited but downloads are not, so you need to proxy/cache the API request if you want to use it on the website. In case you want more analytics:
|
@ariya bintray looks promising? E.g. https://github.com/getgauge/gauge are using bintry for their nightly builds also, it's working really nice for them. |
bintray's foss 1tb download limit would likely exceeded pretty easily no? |
Addresses less#2898. Instead of attempting a manual download of PhantomJS, use the npm package phantomjs-prebuilt and the environment variable `PHANTOMJS_CDNURL` as suggested in the comment at ariya/phantomjs#13953 (comment).
This is a moot point while we're suspending the development (#15344). |
Let's explore a different place to host our downloads!
Requirement: good analytics. Minimum requirement: accumulated download counts.
The text was updated successfully, but these errors were encountered: