|
|
*Note: these are preliminary notes about using Google Cloud Storage as a CDN service*
|
|
|
|
|
|
The documentation home is https://developers.google.com/storage/index. The main tool is `gsutil`. Note: due to rapid development a lot of information on the web uses outdated syntax (but is still useful, e.g., https://gist.github.com/mhulse/4362104).
|
|
|
|
|
|
### Copying: recursively (-R), compressed (-z), verbose (-v) https://developers.google.com/storage/docs/gsutil/commands/cp
|
|
|
|
|
|
gsutil cp -Rzv mathjax gs://mathjax-cdn/
|
|
|
|
|
|
|
|
|
### make bucket public https://developers.google.com/storage/docs/gsutil/commands/acl#set
|
|
|
|
|
|
gsutil -m setacl -R -a public-read gs://mathjax-cdn
|
|
|
|
|
|
# set CORS (should only be needed once), https://developers.google.com/storage/docs/cross-origin
|
|
|
|
|
|
create XML file with
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<CorsConfig>
|
|
|
<Cors>
|
|
|
<Origins>
|
|
|
<Origin>*</Origin>
|
|
|
</Origins>
|
|
|
<Methods>
|
|
|
<Method>GET</Method>
|
|
|
<Method>POST</Method>
|
|
|
<Method>HEAD</Method>
|
|
|
</Methods>
|
|
|
<ResponseHeaders>
|
|
|
<ResponseHeader>*</ResponseHeader>
|
|
|
</ResponseHeaders>
|
|
|
<MaxAgeSec>86400</MaxAgeSec>
|
|
|
</Cors>
|
|
|
</CorsConfig>
|
|
|
|
|
|
Save as `cors.xml` and run
|
|
|
|
|
|
gsutil cors set cors.xml gs://fonts.acmecompany.com/
|
|
|
|
|
|
|
|
|
# set headers -- https://developers.google.com/storage/docs/gsutil/commands/setmeta
|
|
|
|
|
|
gsutil setmeta -r -h "Content-Type:font/opentype" -h "Cache-Control:public, max-age=3600" -h "Content-Disposition" gs://mathjax-cdn/mathjax/2.3-latest/fonts/HTML-CSS/TeX/otf/*.otf
|
|
|
|
|
|
Note: unfortunately we can't just use gs//mathjax-cdn/*.otf |
|
|
\ No newline at end of file |