如何实现GCS存储对象的真实移动并保留Last Modified时间?
问题:GCS对象移动时如何保留Last Modified时间?
当我将Google Cloud Storage(GCS)对象从一个存储桶移动到另一个存储桶,或在同一存储桶内的不同“文件夹”间重命名(即变更对象名称标识)时,Last Modified日期总会被修改为移动操作的日期/时间。由于对象内容并未发生变更,我希望移动操作能保留原有的Last Modified时间——就像Windows/Linux系统中的移动行为那样,毕竟日期/时间完整性是实用特性,应当有一个与对象内容变更绑定的时间戳(内容不变则该时间戳保持不变,通常这就是Last Modified日期/时间)。
我已尝试以下操作,均无法保留原修改时间:
- 使用
gsutil上传本地文件至存储桶:gsutil .\File.txt gs://bucket-name1/ - 同一存储桶内重命名对象:
gsutil gs://bucket-name1/File.txt gs://bucket-name1/SameBucketNameChange/ - 跨存储桶移动对象:
gsutil gs://bucket-name1/File.txt gs://bucket-name2 - 通过GCS控制台手动选择对象,执行跨存储桶移动操作
在所有场景下,对象的Last Modified和Created时间都会被修改。
目前我找到的相对最优方案是启用元数据保留的传输任务,但实际效果是GCS仍会修改目标对象的Created/Modified时间,仅将原对象的Created时间复制到新对象的“Custom time”字段中,这并非理想的解决方式。
内容的提问来源于stack exchange,提问作者Ashley
相关产品推荐
相关产品推荐

