Cloud Storage 删除的文件仍然可以访问
Cloud Storage the deleted file still accessible
我正在从云存储中删除一个 JSON 文件。但是,我删除的这个文件仍然可以访问。我知道这听起来很傻。当我列出云存储中存在的文件时,没有列出该文件。但是,我可以使用 URL.
访问此文件
我会试着给你举个例子。
我正在使用 Postman 从云存储调用文件:
[
{
"_id": "60ad0e33b7161e270d7f9bf2",
"id": 1,
"city": "Rotterdam",
"hours_0_sun": 2.4,
"daily_0_temp_day": 11.5,
....
},
{
...
}
]
当我删除文件时
const key = `someid-someid.json`;
const bucket = storage.bucket(process.env.GCLOUD_BUCKET_NAME);
const file = bucket.file(key);
const response = await file.delete();
并再次调用文件:
[
{
"_id": "60ad0e33b7161e270d7f9bf2",
"id": 1,
"city": "Rotterdam",
"hours_0_sun": 2.4,
"daily_0_temp_day": 11.5,
....
},
{
...
}
]
文件仍然可以访问...
当我尝试从存储中获取文件时:
//Find file
const options = {
prefix: `someid-someid.json`
};
let files = await storage.bucket(process.env.GCLOUD_BUCKET_NAME).getFiles(options);
console.log(files);
控制台:
[[]]
这让我抓狂。这是正常的吗?如何彻底删除文件?
注意:当我删除文件时,我也无法从存储浏览器中看到该文件。所以存储中不存在文件。但仍然可以访问...
感谢@Kolban,我发现了问题,他在评论中提到了 CDN 缓存。
我在将文件上传到云存储时设置了 1 小时的缓存选项,我完全忘记了。
我把 1 小时改为 1 分钟,问题解决了!
await bucket
.upload(filePath, {
destination: key,
gzip: true,
metadata: {
cacheControl: "public, max-age=60" // 1 minute caching
},
public: true
});
我正在从云存储中删除一个 JSON 文件。但是,我删除的这个文件仍然可以访问。我知道这听起来很傻。当我列出云存储中存在的文件时,没有列出该文件。但是,我可以使用 URL.
访问此文件我会试着给你举个例子。
我正在使用 Postman 从云存储调用文件:
[
{
"_id": "60ad0e33b7161e270d7f9bf2",
"id": 1,
"city": "Rotterdam",
"hours_0_sun": 2.4,
"daily_0_temp_day": 11.5,
....
},
{
...
}
]
当我删除文件时
const key = `someid-someid.json`;
const bucket = storage.bucket(process.env.GCLOUD_BUCKET_NAME);
const file = bucket.file(key);
const response = await file.delete();
并再次调用文件:
[
{
"_id": "60ad0e33b7161e270d7f9bf2",
"id": 1,
"city": "Rotterdam",
"hours_0_sun": 2.4,
"daily_0_temp_day": 11.5,
....
},
{
...
}
]
文件仍然可以访问...
当我尝试从存储中获取文件时:
//Find file
const options = {
prefix: `someid-someid.json`
};
let files = await storage.bucket(process.env.GCLOUD_BUCKET_NAME).getFiles(options);
console.log(files);
控制台:
[[]]
这让我抓狂。这是正常的吗?如何彻底删除文件?
注意:当我删除文件时,我也无法从存储浏览器中看到该文件。所以存储中不存在文件。但仍然可以访问...
感谢@Kolban,我发现了问题,他在评论中提到了 CDN 缓存。
我在将文件上传到云存储时设置了 1 小时的缓存选项,我完全忘记了。
我把 1 小时改为 1 分钟,问题解决了!
await bucket
.upload(filePath, {
destination: key,
gzip: true,
metadata: {
cacheControl: "public, max-age=60" // 1 minute caching
},
public: true
});