aws_s3
- Components
- Code examples
Tables​
    bucket
    bucket_object
    bucket_website
    public_access_block
Functions​
    s3_upload_object
Manage buckets
--- installs the s3 module
SELECT * FROM iasql_install('<modules>');
--- adds a new s3 bucket without policy
INSERT INTO bucket (name)
VALUES ('<s3NameNoPolicy>');
--- check s3 insertion
SELECT *
FROM bucket
WHERE name = '<s3NameNoPolicy>';
--- deletes new s3 bucket without policy
DELETE FROM bucket
WHERE name = '<s3NameNoPolicy>';
--- check s3 deletion
SELECT *
FROM bucket
WHERE name = '<s3NameNoPolicy>';
--- adds a new s3 bucket
INSERT INTO bucket (name, policy)
VALUES ('<s3Name>', '<policyDocument>');
--- adds content to bucket
SELECT * FROM s3_upload_object('<s3Name>', 'iasql_message', '<bucketContent>', 'application/json');
--- adds new content to bucket
SELECT * FROM s3_upload_object('<s3Name>', 'iasql_message_1', '<bucketContent>', 'application/json');
--- check object insertion
SELECT *
FROM bucket_object
WHERE bucket_name = '<s3Name>';
--- deletes one object of the bucket
DELETE FROM bucket_object WHERE bucket_name = '<s3Name>' AND key='iasql_message';
--- check object deletion
SELECT *
FROM bucket_object
WHERE bucket_name = '<s3Name>' AND key='iasql_message';
--- gets current bucket policy document
SELECT * FROM bucket WHERE name = '<s3Name>';
--- cleans the bucket
DELETE FROM bucket_object WHERE bucket_name='<s3Name>';
--- check no s3 objects still exist
SELECT *
FROM bucket_object
WHERE bucket_name = '<s3Name>';
--- adds a new public access block entry
INSERT INTO public_access_block (bucket_name, block_public_acls, ignore_public_acls, block_public_policy,
restrict_public_buckets)
VALUES ('<s3Name>', false, false, false, false);
--- checks the public access block exists
SELECT *
FROM public_access_block
WHERE bucket_name = '<s3Name>'
AND block_public_acls = FALSE
AND ignore_public_acls = FALSE
AND block_public_policy = FALSE
AND restrict_public_buckets = FALSE;
--- change the public access block
UPDATE public_access_block
SET block_public_acls = true
WHERE bucket_name = '<s3Name>';
--- checks public access block is updated
SELECT *
FROM public_access_block
WHERE bucket_name = '<s3Name>'
AND block_public_acls = TRUE
AND ignore_public_acls = FALSE
AND block_public_policy = FALSE
AND restrict_public_buckets = FALSE;
--- removes the public block entry
DELETE
FROM public_access_block
WHERE bucket_name = '<s3Name>';
--- adds a static website to bucket
INSERT INTO bucket_website (bucket_name, index_document)
VALUES ('<s3Name>', 'index.html');
--- checks the static website exists
SELECT *
FROM bucket_website
WHERE bucket_name = '<s3Name>'
AND index_document = 'index.html';
--- change the static website
UPDATE bucket_website
SET error_document = 'error.html'
WHERE bucket_name = '<s3Name>';
--- checks static website is updated
SELECT *
FROM bucket_website
WHERE bucket_name = '<s3Name>'
AND index_document = 'index.html' AND error_document = 'error.html';
--- removes the static website
DELETE
FROM bucket_website
WHERE bucket_name = '<s3Name>';
Manage policies
--- updates the bucket policy
UPDATE bucket SET policy='<newPolicyDocument>' WHERE name = '<s3Name>';
--- gets current bucket policy with updated document
SELECT * FROM bucket WHERE name = '<s3Name>';