Dernière activité 1715362301

Some samples of working with S3 on AWS.

kristofer's Avatar kristofer a révisé ce gist 1715362301. Aller à la révision

2 files changed, 91 insertions

s3example.java(fichier créé)

@@ -0,0 +1,56 @@
1 + import com.amazonaws.services.s3.AmazonS3;
2 + import com.amazonaws.services.s3.AmazonS3ClientBuilder;
3 + import com.amazonaws.services.s3.model.*;
4 + import java.io.File;
5 +
6 + public class S3Examples {
7 +
8 + private final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
9 +
10 + // Create an S3 bucket
11 + public void createBucket(String bucketName) {
12 + s3.createBucket(bucketName);
13 + }
14 +
15 + // Upload an object to S3
16 + public void uploadObject(String bucketName, String key, File file) {
17 + s3.putObject(bucketName, key, file);
18 + }
19 +
20 + // Download an object from S3
21 + public void downloadObject(String bucketName, String key, File file) {
22 + s3.getObject(new GetObjectRequest(bucketName, key), file);
23 + }
24 +
25 + // List objects in a bucket
26 + public ObjectListing listObjects(String bucketName) {
27 + return s3.listObjects(bucketName);
28 + }
29 +
30 + // Generate pre-signed URL to share an S3 object
31 + public URL generatePresignedUrl(String bucketName, String key) {
32 + Date expiration = new Date();
33 + long expTimeMillis = expiration.getTime();
34 + expTimeMillis += 1000 * 60 * 60; // Add 1 hour.
35 + expiration.setTime(expTimeMillis);
36 +
37 + GeneratePresignedUrlRequest generatePresignedUrlRequest =
38 + new GeneratePresignedUrlRequest(bucketName, key)
39 + .withMethod(HttpMethod.GET)
40 + .withExpiration(expiration);
41 +
42 + return s3.generatePresignedUrl(generatePresignedUrlRequest);
43 + }
44 + }
45 + // The key steps are:
46 +
47 + // 1. Create an S3Client object to interact with S3
48 + // 2. Call createBucket() to create a new S3 bucket
49 + // 3. Upload objects using putObject(), specifying bucket name, key, and file
50 + // 4. Download objects using getObject(), specifying bucket name, key, and target file
51 + // 5. List objects in a bucket using listObjects()
52 + // 6. Generate a pre-signed URL using generatePresignedUrl() by specifying bucket,
53 + // key, expiration date, and HTTP method.
54 +
55 + // The pre-signed URL allows temporary access to private S3 objects without requiring AWS credentials.
56 + // The URL is only valid until the specified expiration date/time.

s3example.py(fichier créé)

@@ -0,0 +1,35 @@
1 + import boto3
2 + from botocore.exceptions import ClientError
3 +
4 + s3 = boto3.client('s3')
5 +
6 + # Create a bucket
7 + bucket_name = 'my-bucket'
8 + location = {'LocationConstraint':'us-east-1'}
9 + s3.create_bucket(Bucket=bucket_name, CreateBucketConfiguration=location)
10 +
11 + # Upload an object to bucket
12 + filename = 'data.csv'
13 + object_name = 'data/data.csv'
14 + s3.upload_file(filename, bucket_name, object_name)
15 +
16 + # List objects in bucket
17 + response = s3.list_objects(Bucket=bucket_name)
18 + for object in response['Contents']:
19 + print(object['Key'])
20 +
21 + # Download an object
22 + s3.download_file(bucket_name, object_name, 'data_download.csv')
23 +
24 + # Generate pre-signed URL to share an object
25 + url = s3.generate_presigned_url(
26 + ClientMethod='get_object',
27 + Params={'Bucket': bucket_name, 'Key': object_name},
28 + ExpiresIn=3600)
29 +
30 + print(url)
31 +
32 + # This creates an S3 bucket, uploads a local CSV file to the bucket under object name 'data/data.csv',
33 + # lists all objects in the bucket, downloads the object to a local file, and generates a pre-signed URL
34 + # that allows temporary access to download the object for anyone with the URL.
35 + # The pre-signed URL expires after 3600 seconds (1 hour).
Plus récent Plus ancien