Naposledy aktivní 1715362301

Some samples of working with S3 on AWS.

s3example.java Raw
1import com.amazonaws.services.s3.AmazonS3;
2import com.amazonaws.services.s3.AmazonS3ClientBuilder;
3import com.amazonaws.services.s3.model.*;
4import java.io.File;
5
6public 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 Raw
1import boto3
2from botocore.exceptions import ClientError
3
4s3 = boto3.client('s3')
5
6# Create a bucket
7bucket_name = 'my-bucket'
8location = {'LocationConstraint':'us-east-1'}
9s3.create_bucket(Bucket=bucket_name, CreateBucketConfiguration=location)
10
11# Upload an object to bucket
12filename = 'data.csv'
13object_name = 'data/data.csv'
14s3.upload_file(filename, bucket_name, object_name)
15
16# List objects in bucket
17response = s3.list_objects(Bucket=bucket_name)
18for object in response['Contents']:
19 print(object['Key'])
20
21# Download an object
22s3.download_file(bucket_name, object_name, 'data_download.csv')
23
24# Generate pre-signed URL to share an object
25url = s3.generate_presigned_url(
26 ClientMethod='get_object',
27 Params={'Bucket': bucket_name, 'Key': object_name},
28 ExpiresIn=3600)
29
30print(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).
36