我有一个每周运行的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存储桶中定义的“版本控制”和“生命周期”策略。在 如果没有这些政策,上传将覆盖任何现有政策 内容。
存储桶的版本设置已暂停,我不知道有任何其他设置或所做的更改会影响此设置。
如何使文件上传覆盖任何具有相同名称的现有文件?
答案 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)
存储类方法。如果文件已经存在,则该方法试图生成唯一的文件名。我已将该方法添加到我的自定义存储类中,并且,如果文件符合条件,我将仅返回现有名称以允许其覆盖。我仍然不确定为什么它要开始这样做。