| OLD | NEW |
| 1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
| 2 # Copyright 2012 Google Inc. All Rights Reserved. | 2 # Copyright 2012 Google Inc. All Rights Reserved. |
| 3 # | 3 # |
| 4 # Licensed under the Apache License, Version 2.0 (the "License"); | 4 # Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 # you may not use this file except in compliance with the License. | 5 # you may not use this file except in compliance with the License. |
| 6 # You may obtain a copy of the License at | 6 # You may obtain a copy of the License at |
| 7 # | 7 # |
| 8 # http://www.apache.org/licenses/LICENSE-2.0 | 8 # http://www.apache.org/licenses/LICENSE-2.0 |
| 9 # | 9 # |
| 10 # Unless required by applicable law or agreed to in writing, software | 10 # Unless required by applicable law or agreed to in writing, software |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 ".webp" was recognized by the server-side content detection system, but | 78 ".webp" was recognized by the server-side content detection system, but |
| 79 not by gsutil.) | 79 not by gsutil.) |
| 80 | 80 |
| 81 | 81 |
| 82 <B>CACHE-CONTROL</B> | 82 <B>CACHE-CONTROL</B> |
| 83 Another commonly set piece of metadata is Cache-Control, which allows | 83 Another commonly set piece of metadata is Cache-Control, which allows |
| 84 you to control whether and for how long browser and Internet caches are | 84 you to control whether and for how long browser and Internet caches are |
| 85 allowed to cache your objects. Cache-Control only applies to objects with | 85 allowed to cache your objects. Cache-Control only applies to objects with |
| 86 a public-read ACL. Non-public data are not cacheable. | 86 a public-read ACL. Non-public data are not cacheable. |
| 87 | 87 |
| 88 Here's an example of uploading an object set to allow caching: | 88 Here's an example of uploading a set of objects to allow caching: |
| 89 | 89 |
| 90 gsutil -h "Cache-Control:public,max-age=3600" cp -a public-read \\ | 90 gsutil -h "Cache-Control:public,max-age=3600" cp -a public-read \\ |
| 91 -r html gs://bucket/html | 91 -r html gs://bucket/html |
| 92 | 92 |
| 93 This command would upload all files in the html directory (and subdirectories) | 93 This command would upload all files in the html directory (and subdirectories) |
| 94 and make them publicly readable and cacheable, with cache expiration of | 94 and make them publicly readable and cacheable, with cache expiration of |
| 95 one hour. | 95 one hour. |
| 96 | 96 |
| 97 Note that if you allow caching, at download time you may see older versions | 97 Note that if you allow caching, at download time you may see older versions |
| 98 of objects after uploading a newer replacement object. Note also that because | 98 of objects after uploading a newer replacement object. Note also that because |
| 99 objects can be cached at various places on the Internet there is no way to | 99 objects can be cached at various places on the Internet there is no way to |
| 100 force a cached object to expire globally (unlike the way you can force your | 100 force a cached object to expire globally (unlike the way you can force your |
| 101 browser to refresh its cache). | 101 browser to refresh its cache). If you want to prevent caching of publicly |
| 102 readable objects you should set a Cache-Control:private header on the object. |
| 103 You can do this with a command such as: |
| 104 |
| 105 gsutil -h Cache-Control:private cp -a public-read file.png gs://your-bucket |
| 102 | 106 |
| 103 Another use of the Cache-Control header is through the "no-transform" value, | 107 Another use of the Cache-Control header is through the "no-transform" value, |
| 104 which instructs Google Cloud Storage to not apply any content transformations | 108 which instructs Google Cloud Storage to not apply any content transformations |
| 105 based on specifics of a download request, such as removing gzip | 109 based on specifics of a download request, such as removing gzip |
| 106 content-encoding for incompatible clients. Note that this parameter is only | 110 content-encoding for incompatible clients. Note that this parameter is only |
| 107 respected by the XML API. The Google Cloud Storage JSON API respects only the | 111 respected by the XML API. The Google Cloud Storage JSON API respects only the |
| 108 no-cache and max-age Cache-Control parameters. | 112 no-cache and max-age Cache-Control parameters. |
| 109 | 113 |
| 110 Note that if you upload an object with a public-read ACL and don't include a | |
| 111 Cache-Control header, it will be served with a Cache-Control header allowing | |
| 112 the object to be cached for 3600 seconds. This will not happen if the object | |
| 113 is uploaded with a non-public ACL and then changed to public. Moreover, if you | |
| 114 upload an object with a public-read ACL and later change the ACL not to be | |
| 115 public-read, the object will no longer be served with the default | |
| 116 Cache-Control header noted above (so will be served as not cacheable). | |
| 117 | |
| 118 For details about how to set the Cache-Control header see | 114 For details about how to set the Cache-Control header see |
| 119 "gsutil help setmeta". | 115 "gsutil help setmeta". |
| 120 | 116 |
| 121 | 117 |
| 122 <B>CONTENT-ENCODING</B> | 118 <B>CONTENT-ENCODING</B> |
| 123 You can specify a Content-Encoding to indicate that an object is compressed | 119 You can specify a Content-Encoding to indicate that an object is compressed |
| 124 (for example, with gzip compression) while maintaining its Content-Type. | 120 (for example, with gzip compression) while maintaining its Content-Type. |
| 125 You will need to ensure that the files have been compressed using the | 121 You will need to ensure that the files have been compressed using the |
| 126 specified Content-Encoding before using gsutil to upload them. Consider the | 122 specified Content-Encoding before using gsutil to upload them. Consider the |
| 127 following example for Linux: | 123 following example for Linux: |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 help_spec = HelpProvider.HelpSpec( | 198 help_spec = HelpProvider.HelpSpec( |
| 203 help_name='metadata', | 199 help_name='metadata', |
| 204 help_name_aliases=[ | 200 help_name_aliases=[ |
| 205 'cache-control', 'caching', 'content type', 'mime type', 'mime', | 201 'cache-control', 'caching', 'content type', 'mime type', 'mime', |
| 206 'type'], | 202 'type'], |
| 207 help_type='additional_help', | 203 help_type='additional_help', |
| 208 help_one_line_summary='Working With Object Metadata', | 204 help_one_line_summary='Working With Object Metadata', |
| 209 help_text=_DETAILED_HELP_TEXT, | 205 help_text=_DETAILED_HELP_TEXT, |
| 210 subcommand_help_text={}, | 206 subcommand_help_text={}, |
| 211 ) | 207 ) |
| OLD | NEW |