Delete the actual binary objects with the data objects

This commit is contained in:
galfert 2012-11-03 15:05:04 +01:00
parent 2c9979f544
commit 5384e3d355
2 changed files with 37 additions and 1 deletions

View File

@ -105,6 +105,12 @@ module RemoteStorage
end end
def delete_data(user, directory, key) def delete_data(user, directory, key)
object = data_bucket.get("#{user}:#{directory}:#{key}")
if binary_link = object.links.select {|l| l.tag == "binary"}.first
client[binary_link.bucket].delete(binary_link.key)
end
riak_response = data_bucket.delete("#{user}:#{directory}:#{key}") riak_response = data_bucket.delete("#{user}:#{directory}:#{key}")
timestamp = (Time.now.to_f * 1000).to_i timestamp = (Time.now.to_f * 1000).to_i

View File

@ -248,8 +248,11 @@ describe "App with Riak backend" do
end end
describe "DELETE" do describe "DELETE" do
it "removes the key" do before do
header "Authorization", "Bearer 123" header "Authorization", "Bearer 123"
end
it "removes the key" do
delete "/jimmy/documents/foo" delete "/jimmy/documents/foo"
last_response.status.must_equal 204 last_response.status.must_equal 204
@ -257,6 +260,33 @@ describe "App with Riak backend" do
data_bucket.get("jimmy:documents:foo") data_bucket.get("jimmy:documents:foo")
}.must_raise Riak::HTTPFailedRequest }.must_raise Riak::HTTPFailedRequest
end end
context "binary data" do
before do
header "Content-Type", "image/jpeg; charset=binary"
filename = File.join(File.expand_path(File.dirname(__FILE__)), "fixtures", "rockrule.jpeg")
@image = File.open(filename, "r").read
put "/jimmy/documents/jaypeg", @image
end
it "removes the main object" do
delete "/jimmy/documents/jaypeg"
last_response.status.must_equal 204
lambda {
data_bucket.get("jimmy:documents:jaypeg")
}.must_raise Riak::HTTPFailedRequest
end
it "removes the binary object" do
delete "/jimmy/documents/jaypeg"
last_response.status.must_equal 204
lambda {
binary_bucket.get("jimmy:documents:jaypeg")
}.must_raise Riak::HTTPFailedRequest
end
end
end end
end end