{ "$schema": "../schema/vector.schema.json", "vectors": [ { "id": "presigned-0001", "group": "presigned", "kind": "api", "title": "Presigned GetObject URL succeeds before its expiry", "description": "The source additionally sends an OPTIONS request to the presigned URL expecting 400; that part is not expressible (the presigned URL is runner-minted per step) and is omitted.", "tags": [ "tier-3", "presigned", "acl", "source:ceph-s3-tests" ], "source": "https://github.com/ceph/s3-tests/blob/5522d1c351f75bc00ae0f64f742f3f095f5939d9/s3tests/functional/test_s3.py#L3507", "prerequisites": [ { "$bucket": { "handle": "b1" } } ], "steps": [ { "$operation": { "name": "PutObject", "params": { "Bucket": "${res.b1.name}", "Key": "foo" } } }, { "$operation": { "name": "GetObject", "params": { "Bucket": "${res.b1.name}", "Key": "foo" }, "presign": { "expiresIn": 100000 }, "expect": { "status": 200 } } } ] }, { "id": "presigned-0002", "group": "presigned", "kind": "api", "title": "Presigned PUT with ACL parameter then presigned GET reads the body back", "tags": [ "tier-1", "presigned", "acl", "source:ceph-s3-tests" ], "source": "https://github.com/ceph/s3-tests/blob/5522d1c351f75bc00ae0f64f742f3f095f5939d9/s3tests/functional/test_s3.py#L3624", "prerequisites": [ { "$bucket": { "handle": "b1" } } ], "steps": [ { "$operation": { "name": "PutObject", "params": { "Bucket": "${res.b1.name}", "Key": "foo", "ACL": "private", "Body": "hello world" }, "presign": { "expiresIn": 3600 }, "expect": { "status": 200 } } }, { "$operation": { "name": "GetObject", "params": { "Bucket": "${res.b1.name}", "Key": "foo" }, "presign": { "expiresIn": 3600 }, "expect": { "status": 200, "body": "hello world" } } } ] }, { "id": "presigned-0003", "group": "presigned", "kind": "api", "title": "Presigned GET URL returns the object body", "tags": [ "tier-1", "presigned", "source:msst-s3" ], "source": "https://github.com/linux-kdevops/msst-s3/blob/b84a323cca5ee862e87677043f672f156c46b448/tests/presigned/test_presigned_urls.py#L26", "prerequisites": [ { "$bucket": { "handle": "b1" } }, { "$object": { "handle": "o1", "bucket": "b1", "key": "presigned-get-test", "body": "presigned url test data" } } ], "steps": [ { "$operation": { "name": "GetObject", "params": { "Bucket": "${res.b1.name}", "Key": "presigned-get-test" }, "presign": { "expiresIn": 3600 }, "expect": { "status": 200, "body": "presigned url test data" } } } ] }, { "id": "presigned-0004", "group": "presigned", "kind": "api", "title": "Presigned PUT URL uploads the object", "tags": [ "tier-1", "presigned", "source:msst-s3" ], "source": "https://github.com/linux-kdevops/msst-s3/blob/b84a323cca5ee862e87677043f672f156c46b448/tests/presigned/test_presigned_urls.py#L55", "prerequisites": [ { "$bucket": { "handle": "b1" } } ], "steps": [ { "$operation": { "name": "PutObject", "params": { "Bucket": "${res.b1.name}", "Key": "presigned-put-test", "Body": "uploaded via presigned url" }, "presign": { "expiresIn": 300 }, "expect": { "status": 200 } } }, { "$operation": { "name": "GetObject", "params": { "Bucket": "${res.b1.name}", "Key": "presigned-put-test" }, "expect": { "status": 200, "body": "uploaded via presigned url" } } } ] }, { "id": "presigned-0005", "group": "presigned", "kind": "api", "title": "Presigned GET URL honors ResponseContentDisposition override", "tags": [ "tier-1", "presigned", "source:msst-s3" ], "source": "https://github.com/linux-kdevops/msst-s3/blob/b84a323cca5ee862e87677043f672f156c46b448/tests/presigned/test_presigned_urls.py#L146", "prerequisites": [ { "$bucket": { "handle": "b1" } }, { "$object": { "handle": "o5", "bucket": "b1", "key": "custom-headers", "body": "test" } } ], "steps": [ { "$operation": { "name": "GetObject", "params": { "Bucket": "${res.b1.name}", "Key": "custom-headers", "ResponseContentDisposition": "attachment; filename=\"download.txt\"", "ResponseContentType": "text/plain" }, "presign": { "expiresIn": 3600 }, "expect": { "status": 200, "headers": { "content-disposition": { "$matches": "attachment" } } } } } ] }, { "id": "presigned-0006", "group": "presigned", "kind": "api", "title": "Presigned GET URL for a missing key returns 404", "tags": [ "tier-1", "presigned", "errors", "source:msst-s3" ], "source": "https://github.com/linux-kdevops/msst-s3/blob/b84a323cca5ee862e87677043f672f156c46b448/tests/presigned/test_presigned_urls.py#L176", "prerequisites": [ { "$bucket": { "handle": "b1" } } ], "steps": [ { "$operation": { "name": "GetObject", "params": { "Bucket": "${res.b1.name}", "Key": "does-not-exist" }, "presign": { "expiresIn": 300 }, "expect": { "status": 404, "error": "NoSuchKey" } } } ] }, { "id": "presigned-0007", "group": "presigned", "kind": "api", "title": "Presigned DELETE URL removes the object", "tags": [ "tier-1", "presigned", "source:msst-s3" ], "source": "https://github.com/linux-kdevops/msst-s3/blob/b84a323cca5ee862e87677043f672f156c46b448/tests/presigned/test_presigned_urls.py#L221", "prerequisites": [ { "$bucket": { "handle": "b1" } }, { "$object": { "handle": "o8", "bucket": "b1", "key": "presigned-delete", "body": "to delete" } } ], "steps": [ { "$operation": { "name": "DeleteObject", "params": { "Bucket": "${res.b1.name}", "Key": "presigned-delete" }, "presign": { "expiresIn": 300 } } }, { "$operation": { "name": "HeadObject", "params": { "Bucket": "${res.b1.name}", "Key": "presigned-delete" }, "expect": { "status": 404 } } } ] } ] }