Berbagi objek dengan presigned URLs - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Berbagi objek dengan presigned URLs

Semua objek Amazon S3 secara default bersifat privat, hanya pemilik objek yang memiliki izin untuk mengaksesnya. Namun, pemilik objek dapat berbagi objek dengan orang lain dengan membuat URL yang telah ditandatangani sebelumnya. URL yang telah ditetapkan sebelumnya menggunakan kredensial keamanan untuk memberikan izin terbatas waktu untuk mengunduh objek. URL dapat dimasukkan di dalam browser, atau digunakan oleh program untuk mengunduh objek. Kredensi yang digunakan oleh URL presigned adalah milik AWS pengguna yang membuat URL.

Untuk informasi umum tentang presigned URLs, lihatUnduh dan unggah objek dengan presigned URLs.

Anda dapat membuat URL yang telah ditetapkan sebelumnya untuk berbagi objek tanpa menulis kode apa pun dengan menggunakan konsol Amazon S3 AWS , Explorer for Visual Studio (Windows), atau. AWS Toolkit for Visual Studio Code Anda juga dapat membuat URL presigned secara terprogram dengan menggunakan AWS Command Line Interface (AWS CLI) atau. AWS SDKs

Anda dapat menggunakan konsol Amazon S3 untuk menghasilkan URL yang telah ditandatangani untuk berbagi objek dengan mengikuti langkah-langkah berikut. Saat menggunakan konsol, waktu kedaluwarsa maksimum untuk URL yang telah ditandatangani sebelumnya adalah 12 jam dari waktu pembuatan.

Untuk menghasilkan URL yang telah ditandatangani sebelumnya menggunakan konsol Amazon S3
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket tujuan umum.

  3. Dalam daftar Bucket tujuan umum, pilih nama bucket tujuan umum yang berisi objek yang Anda inginkan untuk URL yang telah ditetapkan sebelumnya.

  4. Dalam daftar Objek, pilih objek yang ingin Anda buatkan URL yang telah ditandatangani.

  5. Pada menu Tindakan objek, pilih Bagikan dengan URL yang telah ditandatangani.

  6. Tentukan berapa lama Anda menginginkan URL yang telah ditandatangani tersebut valid.

  7. Pilih Buat URL yang telah ditandatangani.

  8. Ketika konfirmasi muncul, URL secara otomatis disalin ke clipboard Anda. Anda akan melihat tombol untuk menyalin URL yang telah ditandatangani jika Anda perlu menyalinnya lagi.

AWS CLI Perintah contoh berikut menghasilkan URL yang telah ditetapkan sebelumnya untuk berbagi objek dari bucket Amazon S3. Saat Anda menggunakan AWS CLI, waktu kedaluwarsa maksimum untuk URL yang telah ditetapkan sebelumnya adalah 7 hari dari waktu pembuatan. Untuk menggunakan contoh ini, ganti user input placeholdersdengan informasi Anda sendiri.

aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800

catatan

Untuk semua yang Wilayah AWS diluncurkan setelah 20 Maret 2019 Anda perlu menentukan endpoint-url dan Wilayah AWS dengan permintaan. Untuk daftar semua Wilayah dan titik akhir Amazon S3, lihat Wilayah dan Titik Akhir dalam AWS Referensi Umum.

aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800 --region af-south-1 --endpoint-url https://s3.af-south-1.amazonaws.com

Untuk informasi selengkapnya, lihat presign dalam AWS CLI Referensi Perintah.

Anda dapat membuat URL presigned secara terprogram dengan menggunakan. AWS SDKs

Python

Script Python berikut menghasilkan URL GET presigned untuk berbagi objek.

  1. Salin isi skrip dan simpan sebagai file “get-only-url.py”. Untuk menggunakan contoh berikut, ganti user input placeholders dengan informasi Anda sendiri (seperti nama file Anda).

    import argparse import boto3 from botocore.exceptions import ClientError def generate_presigned_url(s3_client, client_method, method_parameters, expires_in): """ Generate a presigned Amazon S3 URL that can be used to perform an action. :param s3_client: A Boto3 Amazon S3 client. :param client_method: The name of the client method that the URL performs. :param method_parameters: The parameters of the specified client method. :param expires_in: The number of seconds the presigned URL is valid for. :return: The presigned URL. """ try: url = s3_client.generate_presigned_url( ClientMethod=client_method, Params=method_parameters, ExpiresIn=expires_in ) except ClientError: print(f"Couldn't get a presigned URL for client method '{client_method}'.") raise return url def main(): parser = argparse.ArgumentParser() parser.add_argument("bucket", help="The name of the bucket.") parser.add_argument( "key", help="The key (path and filename) in the S3 bucket.", ) args = parser.parse_args() # By default, this will use credentials from ~/.aws/credentials s3_client = boto3.client("s3") # The presigned URL is specified to expire in 1000 seconds url = generate_presigned_url( s3_client, "get_object", {"Bucket": args.bucket, "Key": args.key}, 1000 ) print(f"Generated GET presigned URL: {url}") if __name__ == "__main__": main()
  2. Untuk menghasilkan URL yang GET telah ditetapkan sebelumnya untuk berbagi file, jalankan skrip berikut dengan nama bucket dan jalur objek yang diinginkan.

    Perintah berikut menggunakan nilai contoh. Ganti user input placeholders dengan informasi Anda sendiri.

    python get-only-url.py amzn-s3-demo-bucket <object-path>

    Skrip akan menampilkan URL yang GET telah ditentukan sebelumnya:

    Generated GET presigned URL: https://amzn-s3-demo-bucket.s3.amazonaws.com/object.txt?AWS AccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=vjbyNxybdZaMmLa%2ByT372YEAiv4%3D&Expires=1741978496
  3. Anda dapat mengunduh file menggunakan URL presigned yang dihasilkan dengan curl:

    curl -X GET "generated-presigned-url" -o "path/to/save/file"

Untuk lebih banyak contoh penggunaan AWS SDKs untuk menghasilkan URL yang telah ditetapkan sebelumnya untuk berbagi objek, lihat Membuat URL yang telah ditetapkan sebelumnya untuk Amazon S3 menggunakan SDK. AWS

catatan

Untuk semua yang Wilayah AWS diluncurkan setelah 20 Maret 2019 Anda perlu menentukan endpoint-url dan Wilayah AWS dengan permintaan. Untuk daftar semua Wilayah dan titik akhir Amazon S3, lihat Wilayah dan Titik Akhir dalam AWS Referensi Umum.

catatan

Saat menggunakan AWS SDKs, atribut Tagging harus berupa header dan bukan parameter kueri. Semua atribut lainnya dapat diteruskan sebagai parameter untuk URL presigned.

catatan

Saat ini, AWS Toolkit for Visual Studio tidak mendukung Visual Studio untuk Mac.

  1. Instal AWS Toolkit for Visual Studio menggunakan petunjuk berikut, Menginstal dan menyiapkan Toolkit for Visual Studio di AWS Toolkit for Visual Studio Panduan Pengguna.

  2. Connect untuk AWS menggunakan langkah-langkah berikut, Connecting to AWS di Panduan AWS Toolkit for Visual Studio Pengguna.

  3. Di panel sisi kiri berlabel AWS Explorer, klik dua kali bucket yang berisi objek Anda.

  4. Klik kanan objek yang ingin Anda buat URL yang telah ditetapkan sebelumnya dan pilih Buat URL Pra-Tanda Tangan... .

  5. Di jendela pop-up, atur tanggal kedaluwarsa dan waktu untuk URL yang telah ditetapkan sebelumnya.

  6. Object Key, harus diisi terlebih dahulu berdasarkan objek yang Anda pilih.

  7. Pilih GET untuk menentukan bahwa URL yang telah ditandatangani sebelumnya ini akan digunakan untuk mengunduh objek.

  8. Pilih tombol Hasilkan.

  9. Untuk menyalin URL ke clipboard, pilih Salin.

  10. Untuk menggunakan URL presigned yang dihasilkan, rekatkan URL ke browser apa pun.

Jika Anda menggunakan Visual Studio Code, Anda dapat membuat URL yang telah ditandatangani sebelumnya untuk membagikan objek tanpa menulis kode apa pun dengan menggunakan AWS Toolkit for Visual Studio Code. Untuk informasi umum, lihat AWS Toolkit for Visual Studio Code dalam Panduan Pengguna AWS Toolkit for Visual Studio Code .

Untuk petunjuk tentang cara menginstal AWS Toolkit for Visual Studio Code, lihat Menginstal AWS Toolkit for Visual Studio Code di Panduan AWS Toolkit for Visual Studio Code Pengguna.

  1. Connect untuk AWS menggunakan langkah-langkah berikut, Connecting to AWS Toolkit for Visual Studio Code di Panduan AWS Toolkit for Visual Studio Code Pengguna.

  2. Pilih AWS logo di panel kiri di Visual Studio Code.

  3. Di bawah EXPLORER, pilih S3.

  4. Pilih bucket dan filenya, lalu buka menu konteks (klik kanan).

  5. Pilih Hasilkan URL yang telah ditandatangani sebelumnya, lalu atur waktu kedaluwarsa (dalam hitungan menit).

  6. Tekan Enter, dan URL yang telah ditandatangani sebelumnya akan disalin ke clipboard Anda.