We can probably do this in a couple of phases.
(Not in the scope, images hosted on GitHub)
This OKR as currently phrased does not include uploading the static assets to an external hosting solutions.
Flask S3 is an unmaintained package which does that automatically. Maybe there is something to learn from the code.
There might be an intermediate stage which gives us more flexibility.
We can make sure that only webcompat.com is allowed to create put on this service. The service willl save at the exact same place, the images. We can also store other data types (like console.log json files).
If/when we switch to a cloud hosting solution, it would be just a matter of changing the destination for the server.
HUH. The last part of this blog post.
GitHub is making a local copy of every single linked images AND link to that once it has done the copy.
This is an assessment on my failures to understand the problem space. The more I dig into coding and the more I reveal issues. I don't think this will be solved in 2019Q4. Many moving pieces. I probably haven forgotten more issues in there.
Option 1: Requirements for AWS S3
Create AWS account for S3
We need to pay something at a point. How do we handle the testing/development phase.
A couple of things need to be modified for testing. Currently we are mocking for the File Storage function.
we need to adds tests and conditions on error conditions returned by AWS S3 and how that impacts our own processing.
This has probably consequences on the UI. What is happening when the user push the button to report an issue, and the screenshots fails to upload on AWS S3 because of the tubes (Amazon down, network error, etc.)
Modify the upload api code
This means basically updating the
Assess which images are really necessary
There are probably images which are not required to be uploaded. Issues or comments have been deleted. But the images are still there on webcompat.com. We need to go through the 40,000+ issues and associated comments to evaluate this.