diff --git a/openstack/storage/v1/objects/requests.go b/openstack/storage/v1/objects/requests.go
index bb9c4ac..931653e 100644
--- a/openstack/storage/v1/objects/requests.go
+++ b/openstack/storage/v1/objects/requests.go
@@ -32,10 +32,11 @@
 		contentType = "text/plain"
 	}
 
-	url := c.GetContainerURL(opts.Container) + query
+	url := getContainerURL(c, opts.Container) + query
 	resp, err := perigee.Request("GET", url, perigee.Options{
 		MoreHeaders: h,
 		Accept:      contentType,
+		OkCodes:     []int{200, 204},
 	})
 	return &resp.HttpResponse, err
 }
@@ -52,9 +53,10 @@
 
 	query := utils.BuildQuery(opts.Params)
 
-	url := c.GetObjectURL(opts.Container, opts.Name) + query
+	url := getObjectURL(c, opts.Container, opts.Name) + query
 	resp, err := perigee.Request("GET", url, perigee.Options{
 		MoreHeaders: h,
+		OkCodes:     []int{200},
 	})
 	return &resp.HttpResponse, err
 }
@@ -84,10 +86,11 @@
 		}
 	}
 
-	url := c.GetObjectURL(opts.Container, opts.Name) + query
-	_, err = perigee.Request("PUT", url, perigee.Options{
+	url := getObjectURL(c, opts.Container, opts.Name) + query
+	_, err := perigee.Request("PUT", url, perigee.Options{
 		ReqBody:     reqBody,
 		MoreHeaders: h,
+		OkCodes:     []int{201},
 	})
 	return err
 }
@@ -102,9 +105,10 @@
 
 	h["Destination"] = fmt.Sprintf("/%s/%s", opts.NewContainer, opts.NewName)
 
-	url := c.GetObjectURL(opts.Container, opts.Name)
-	_, err = perigee.Request("COPY", url, perigee.Options{
+	url := getObjectURL(c, opts.Container, opts.Name)
+	_, err := perigee.Request("COPY", url, perigee.Options{
 		MoreHeaders: h,
+		OkCodes:     []int{201},
 	})
 	return err
 }
@@ -115,9 +119,10 @@
 
 	query := utils.BuildQuery(opts.Params)
 
-	url := c.GetObjectURL(opts.Container, opts.Name) + query
-	_, err = perigee.Request("DELETE", url, perigee.Options{
+	url := getObjectURL(c, opts.Container, opts.Name) + query
+	_, err := perigee.Request("DELETE", url, perigee.Options{
 		MoreHeaders: h,
+		OkCodes:     []int{204},
 	})
 	return err
 }
@@ -151,9 +156,10 @@
 		h["X-Object-Meta-"+k] = v
 	}
 
-	url := c.GetObjectURL(opts.Container, opts.Name)
-	_, err = perigee.Request("POST", url, perigee.Options{
+	url := getObjectURL(c, opts.Container, opts.Name)
+	_, err := perigee.Request("POST", url, perigee.Options{
 		MoreHeaders: h,
+		OkCodes:     []int{202},
 	})
 	return err
 }
diff --git a/openstack/storage/v1/objects/urls.go b/openstack/storage/v1/objects/urls.go
new file mode 100644
index 0000000..5a52aed
--- /dev/null
+++ b/openstack/storage/v1/objects/urls.go
@@ -0,0 +1,13 @@
+package objects
+
+import "github.com/rackspace/gophercloud"
+
+// getObjectURL returns the URI for making Object requests.
+func getObjectURL(c *gophercloud.ServiceClient, container, object string) string {
+	return c.ServiceURL(container, object)
+}
+
+// getContainerURL returns the URI for making Container requests.
+func getContainerURL(c *gophercloud.ServiceClient, container string) string {
+	return c.ServiceURL(container)
+}
