在使用Python库上传时,默认情况下Google Cloud Storage存储桶已停止覆盖文件

时间:2019-06-20 15:33:24

标签: google-cloud-platform google-cloud-storage

我有一个每周运行的App Engine计划任务,将名为logs.json的文件上传到Google Cloud Storage存储桶。

在过去的几个月中,每次上传新版本时,该文件都被覆盖。

在过去的几周中,现有的副本没有被覆盖,而是被覆盖了,而新的副本以不同的名称(例如, logs_XHjYmP3.json

这是执行上载操作的Django存储类的简化代码段。我已验证文件名在上传时是正确的:

# Prints 'logs.json'
print(file.name)
blob.upload_from_file(file, content_type=content_type)
blob.make_public()

阅读documentation时说:

  

上传到现有Blob的效果取决于   Blob存储桶中定义的“版本控制”和“生命周期”策略。在   如果没有这些政策,上传将覆盖任何现有政策   内容。

存储桶的版本设置已暂停,我不知道有任何其他设置或所做的更改会影响此设置。

如何使文件上传覆盖任何具有相同名称的现有文件?

1 个答案:

答案 0 :(得分:1)

经过进一步测试,尽管jest.config看起来正确,但错误的文件名实际上来自Django的System.out.println("What is the formula?"); formula = keyboard.nextLine(); double newFormula = Double.valueOf(formula); Exception in thread "main" java.lang.NumberFormatException: For input string: "2*x" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.lang.Double.parseDouble(Double.java:538) at java.lang.Double.valueOf(Double.java:502) at newpackage.CurveArea.main(CurveArea.java:56) 存储类方法。如果文件已经存在,则该方法试图生成唯一的文件名。我已将该方法添加到我的自定义存储类中,并且,如果文件符合条件,我将仅返回现有名称以允许其覆盖。我仍然不确定为什么它要开始这样做。