Probably. You'll get back a 412 if the precondition fails, in this case it already exists with that
Probably. You'll get back a 412 if the precondition fails, in this case it already exists with that ETag







PutObjectCommandif-???curl -X PUT <cool-presigned-url> --data-binary 'lol' --header 'If-None-Match: "9cdfb439c7876e703e307864c9167a15"' -vvv4xxUncaught (in response) Error: internal errorreq.headersreq.headersR2PutOptions#onlyIfR2GetOptions#rangeworker.example.combucket-oneid.r2.cloudflarestorage.combucket-twoheadersdeletestring[]r2-presigned-url-workervirtualgetgetonlyIfrange: reqHeadersputonlyIf: reqHeadersconst body = 'lol';
const digest = createHash('md5').update(body).digest("hex");
const cmd = new PutObjectCommand({Bucket: 'sdk-example', Key: 'dog.png', Body: body});
cmd.middlewareStack.add((next, context) => async (args) => {
args.request.headers["if-none-match"] = `"${digest}"`;
const result = await next(args);
return result;
}, {
step: "build",
name: "addETag"
})
const data = await S3.send(cmd);
console.log(data);await env.R2.get(key, {
range: req.headers
});await env.R2.put(key, body, {
onlyIf: req.headers
});