وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

مثال: یک فایل را با Boto در AWS S3 آپلود کنید

0 8
زمان لازم برای مطالعه: 2 دقیقه


کد مثال

خدمات وب آمازون (AWS) مجموعه ای از مجموعه خدمات بسیار محبوب برای وب سایت ها و برنامه ها است، بنابراین دانستن روش تعامل با سرویس های مختلف مهم است. در اینجا، ما تمرکز می کنیم روی را سرویس ذخیره سازی ساده (S3)، که در اصل یک سرویس ذخیره فایل است.

همه فایل ها باید به یک سطل اختصاص داده شوند که نامی به آن اختصاص داده شده و می توان توسط آن آدرس دهی کرد http://s3.amazonaws.com/{bucket}/{key}. به هر فایل یک کلید منحصر به فرد اختصاص داده می شود که می تواند بعداً استفاده شود روی برای بازیابی فایل

گزینه‌های زیادی برای اختصاص دادن به سطل‌ها و فایل‌ها (رمزگذاری، ACL و غیره) وجود دارد، اما در اینجا زیاد به آن نمی‌پردازیم. فقط به ارجاع به “خواندن عمومی” توجه کنید، که اجازه می دهد فایل توسط هر کسی دانلود شود.

کد

کد زیر نشان می دهد که در پایتون با استفاده از بوتو، چگونه یک فایل را در S3 آپلود کنیم.

import os

import boto
from boto.s3.key import Key

def upload_to_s3(aws_access_key_id, aws_secret_access_key, file, bucket, key, callback=None, md5=None, reduced_redundancy=False, content_type=None):
    """
    Uploads the given file to the AWS S3
    bucket and key specified.
    
    callback is a function of the form:
    
    def callback(complete, total)
    
    The callback should accept two integer parameters,
    the first representing the number of bytes that
    have been successfully transmitted to S3 and the
    second representing the size of the to be transmitted
    object.
    
    Returns boolean indicating success/failure of upload.
    """
    try:
        size = os.fstat(file.fileno()).st_size
    except:
        
        
        file.seek(0, os.SEEK_END)
        size = file.tell()
    
    conn = boto.connect_s3(aws_access_key_id, aws_secret_access_key)
    bucket = conn.get_bucket(bucket, validate=True)
    k = Key(bucket)
    k.key = key
    if content_type:
        k.set_metadata('Content-Type', content_type)
    sent = k.set_contents_from_file(file, cb=callback, md5=md5, reduced_redundancy=reduced_redundancy, rewind=True)
    
    
    file.seek(0)
    
    if sent == size:
        return True
    return False

با استفاده از کد

و در اینجا روش استفاده از کد است:

AWS_ACCESS_KEY = 'your_access_key'
AWS_ACCESS_SECRET_KEY = 'your_secret_key'

file = open('someFile.txt', 'r+')

key = file.name
bucket = 'your-bucket'

if upload_to_s3(AWS_ACCESS_KEY, AWS_ACCESS_SECRET_KEY, file, bucket, key):
    print 'It worked!'
else:
    print 'The upload failed...'

boto با خیلی بیشتر از S3 کار می کند، شما همچنین می توانید به آن دسترسی داشته باشید EC2، SES، SQSو تقریباً هر سرویس AWS دیگری. اسناد Boto عالی هستند، بنابراین خواندن آنها باید ایده خوبی در مورد روش استفاده از سایر خدمات به شما بدهد. اما اگر نه، نمونه‌های Boto بیشتری مانند روش بازیابی فایل‌ها از S3 ارسال خواهیم کرد.

پیشنهاد می‌کنیم بخوانید:  چگونه بررسی کنیم که آیا کلید در شی جاوا اسکریپت وجود دارد یا نه، شیء در جاوا اسکریپت مجموعه ای نامرتب از جفت های کلید-مقدار (کلید: مقدار) است. هر کلید به عنوان یک ویژگی شناخته می شود و رشته ای است که یک نام ویژگی را نشان می دهد. اگر یک غیر رشته به عنوان کلید داده شود، نمایش رشته ای آن استفاده خواهد شد. مقدار یک دارایی می تواند از هر داده ای باشد...

منابع





منتشر شده در 1403-01-30 15:22:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید