2014-09-19 131 views
0

我在s3上存储用户配置文件图像。当用户更改他的个人资料图片时,我生成一个新的s3密钥并将新返回的网址存储为用户个人资料图片。 我删除旧密钥。不过,尽管密钥已被删除,但我仍然可以通过旧网址访问上一张图片。以下是我的相关代码片段删除s3对象

import boto 
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) 
image_bucket = conn.get_bucket(IMAGE_BUCKET) 
old_s3_key = user.get_old_key() 
image_bucket.delete_key(old_s3_key) 

s3是否需要时间来移除与该关键字相关的网址?

回答

0

在达到一致性之前可能需要很短的时间,但我认为这不会解释这种行为。我不知道你的get_old_key()方法正在返回,但delete_key()方法需要密钥的名称。那是你在传递什么?

如果您尝试删除存储桶中不存在的密钥,S3服务不会返回错误,因此如果您将错误的值传递给delete_key(),它将自动失败。

+0

get_old_key()是我写的自定义方法,它返回需要删除的密钥。 – 2014-09-22 14:01:53

+0

它是否将Key对象或密钥的名称作为字符串返回? – garnaat 2014-09-22 14:15:54