பைதான் மூலம் Cloudflare R2க்கு கோப்பு பதிவேற்றங்களை கையாளுதல்: ஒரு விரிவான வழிகாட்டி

பைதானைப் பயன்படுத்தி Cloudflare R2க்கு கோப்புகளை திறமையாக பதிவேற்றுவது எப்படி என்பதை அறிந்து கொள்ளுங்கள், சூழலை அமைத்தல், மீண்டும் பயன்படுத்தக்கூடிய பதிவேற்ற செயல்பாட்டை உருவாக்குதல், மற்றும் FastAPI உடன் ஒருங்கிணைத்தல் ஆகியவை உட்பட.

1. அறிமுகம்

மேக சேமிப்பக தீர்வுகளின் எப்போதும் மாறிக்கொண்டிருக்கும் நிலப்பரப்பில், Cloudflare R2 ஒரு சக்திவாய்ந்த போட்டியாளராக உருவெடுத்துள்ளது, போட்டி விலையுடன் S3-இணக்கமான API மற்றும் கவர்ச்சிகரமான செயல்திறனை வழங்குகிறது. இந்த கட்டுரை பைதானைப் பயன்படுத்தி Cloudflare R2க்கு கோப்புகளை பதிவேற்றும் செயல்முறை குறித்து உங்களுக்கு வழிகாட்டும், பல்வேறு பயன்பாடுகளில் தடையின்றி ஒருங்கிணைக்கக்கூடிய பன்முக, மீண்டும் பயன்படுத்தக்கூடிய செயல்பாட்டை உருவாக்குவதில் கவனம் செலுத்தும்.

2. சூழலை அமைத்தல்

2.1 முன்நிபந்தனைகள்

செயல்படுத்துவதற்கு முன், பின்வருவனவற்றை உறுதிப்படுத்திக் கொள்ளுங்கள்:

  • உங்கள் கணினியில் பைதான் 3.7 அல்லது அதற்கு பிந்தைய பதிப்பு நிறுவப்பட்டுள்ளது
  • R2 இயக்கப்பட்டுள்ள Cloudflare கணக்கு
  • உங்கள் R2 பக்கெட் சான்றுகளுக்கான அணுகல் (கணக்கு ஐடி, அணுகல் விசை ஐடி, மற்றும் ரகசிய அணுகல் விசை)

2.2 தேவையான தொகுப்புகளை நிறுவுதல்

Cloudflare R2 உடன் தொடர்புகொள்ள boto3 நூலகத்தைப் பயன்படுத்துவோம். pip ஐப் பயன்படுத்தி அதை நிறுவுங்கள்:

1
pip install boto3

3. Cloudflare R2க்கான S3 கிளையன்டை உள்ளமைத்தல்

Cloudflare R2 உடன் தொடர்புகொள்ள, பொருத்தமான அமைப்புகளுடன் S3 கிளையன்டை உள்ளமைக்க வேண்டும்:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import boto3
from botocore.config import Config

s3 = boto3.client(
    "s3",
    endpoint_url="https://<accountid>.r2.cloudflarestorage.com",
    aws_access_key_id="<access_key_id>",
    aws_secret_access_key="<access_key_secret>",
    config=Config(signature_version="s3v4"),
)

3.1 உள்ளமைப்பை புரிந்துகொள்ளுதல்

  • endpoint_url: இது உங்கள் Cloudflare R2 பக்கெட்டின் நுழைவு புள்ளி. <accountid> ஐ உங்கள் உண்மையான Cloudflare கணக்கு ஐடியுடன் மாற்றவும்.
  • aws_access_key_id மற்றும் aws_secret_access_key: இவை உங்கள் R2 பக்கெட் சான்றுகள். அவற்றை உங்கள் உண்மையான மதிப்புகளுடன் மாற்றவும்.
  • config=Config(signature_version="s3v4"): இது அங்கீகாரத்திற்காக Cloudflare R2 தேவைப்படும் கையொப்ப பதிப்பு 4 ஐப் பயன்படுத்துவதைக் குறிக்கிறது.

4. மீண்டும் பயன்படுத்தக்கூடிய பதிவேற்ற செயல்பாட்டை உருவாக்குதல்

Cloudflare R2க்கு கோப்பு பதிவேற்றங்களை கையாளும் பன்முக செயல்பாட்டை உருவாக்குவோம்:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os
from typing import Optional

BUCKET_NAME = "<your_bucket_name>"
CLOUDFLARE_PUBLIC_URL = "https://<your_custom_domain>/"

def upload_to_cloudflare(file_path: str, object_name: Optional[str] = None) -> str:
    """
    Cloudflare R2க்கு ஒரு கோப்பை பதிவேற்றி, பொது URL ஐ திருப்பி அனுப்பி, உள்ளூர் கோப்பை நீக்குகிறது.

    :param file_path: பதிவேற்ற வேண்டிய கோப்பின் பாதை
    :param object_name: S3 பொருள் பெயர். குறிப்பிடப்படவில்லை என்றால், file_path இன் அடிப்படை பெயர் பயன்படுத்தப்படும்
    :return: பதிவேற்றப்பட்ட கோப்பின் பொது URL
    """
    # S3 object_name குறிப்பிடப்படவில்லை என்றால், file_path இன் அடிப்படை பெயரைப் பயன்படுத்தவும்
    if object_name is None:
        object_name = os.path.basename(file_path)

    try:
        # கோப்பை பதிவேற்றவும்
        s3.upload_file(file_path, BUCKET_NAME, object_name)
        
        # பதிவேற்றப்பட்ட கோப்புக்கான பொது URL ஐ உருவாக்கவும்
        url = f"{CLOUDFLARE_PUBLIC_URL}{object_name}"
        
        # உள்ளூர் கோப்பை நீக்கவும்
        os.remove(file_path)
        
        return url
    except Exception as e:
        print(f"ஒரு பிழை ஏற்பட்டது: {e}")
        return ""

4.1 செயல்பாட்டு பகுப்பாய்வு

  • செயல்பாடு இரண்டு அளவுருக்களை ஏற்கிறது: file_path (தேவை) மற்றும் object_name (விருப்பம்).
  • object_name வழங்கப்படவில்லை என்றால், அது கோப்பு பாதையின் அடிப்படை பெயருக்கு இயல்புநிலையாக அமைக்கப்படுகிறது.
  • இது s3.upload_file() ஐப் பயன்படுத்தி குறிப்பிட்ட R2 பக்கெட்டுக்கு கோப்பை பதிவேற்றுகிறது.
  • வெற்றிகரமான பதிவேற்றத்திற்குப் பிறகு, அது கோப்புக்கான பொது URL ஐ உருவாக்குகிறது.
  • பின்னர் இடத்தை விடுவிக்க உள்ளூர் கோப்பு நீக்கப்படுகிறது.
  • செயல்முறையின் போது ஏதேனும் பிழை ஏற்பட்டால், அது பிடிக்கப்பட்டு, அச்சிடப்பட்டு, வெற்று சரம் திருப்பி அனுப்பப்படுகிறது.

5. FastAPI உடன் ஒருங்கிணைத்தல்

FastAPI பயன்பாட்டில் upload_to_cloudflare செயல்பாட்டை எவ்வாறு ஒருங்கிணைப்பது என்பதற்கான எடுத்துக்காட்டு இங்கே:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from fastapi import FastAPI, UploadFile, File
from fastapi.responses import JSONResponse

app = FastAPI()

@app.post("/upload")
async def upload_file(file: UploadFile = File(...)):
    # பதிவேற்றப்பட்ட கோப்பை தற்காலிகமாக சேமிக்கவும்
    temp_file_path = f"/tmp/{file.filename}"
    with open(temp_file_path, "wb") as buffer:
        buffer.write(await file.read())
    
    # Cloudflare R2க்கு பதிவேற்றவும்
    url = upload_to_cloudflare(temp_file_path)
    
    if url:
        return JSONResponse(content={"file_url": url}, status_code=200)
    else:
        return JSONResponse(content={"error": "கோப்பை பதிவேற்ற முடியவில்லை"}, status_code=500)

இந்த முனைப்புப்புள்ளி கோப்பு பதிவேற்றங்களை ஏற்றுக்கொள்கிறது, அவற்றை தற்காலிகமாக சேமிக்கிறது, பின்னர் R2 பதிவேற்றத்தையும் சுத்தம் செய்வதையும் கையாள நமது upload_to_cloudflare செயல்பாட்டைப் பயன்படுத்துகிறது.

6. சிறந்த நடைமுறைகள் மற்றும் கருத்தில் கொள்ள வேண்டியவை

6.1 வலுவான பிழை கையாளுதல்

நமது செயல்பாடு அடிப்படை பிழை கையாளுதலை உள்ளடக்கியிருந்தாலும், உற்பத்தி சூழலில், நீங்கள் மிகவும் விரிவான பிழை கையாளுதல் மற்றும் பதிவு செய்தலை செயல்படுத்த வேண்டும். பிழைகள் மற்றும் முக்கியமான நிகழ்வுகளைக் கண்காணிக்க பதிவு செய்யும் நூலகத்தைப் பயன்படுத்துவதை கருத்தில் கொள்ளுங்கள்.

6.2 பாதுகாப்பு சிறந்த நடைமுறைகள்

உங்கள் R2 சான்றுகள் பாதுகாப்பாக சேமிக்கப்பட்டுள்ளதையும், உங்கள் குறியீட்டில் வெளிப்படுத்தப்படவில்லை என்பதையும் உறுதிப்படுத்திக் கொள்ளுங்கள். உணர்திறன் தகவல்களைப் பாதுகாக்க சூழல் மாறிகளையோ அல்லது பாதுகாப்பான ரகசியங்கள் மேலாண்மை அமைப்பையோ பயன்படுத்துங்கள்.

6.3 கோப்பு அளவு மேலாண்மை

உங்கள் பயன்பாட்டிலும் Cloudflare R2இலும் உள்ள கோப்பு அளவு வரம்புகளை அறிந்திருங்கள். பெரிய கோப்புகளுக்கு, நம்பகத்தன்மை மற்றும் செயல்திறனை மேம்படுத்த பல பகுதி பதிவேற்றங்களை செயல்படுத்துவதை கருத்தில் கொள்ளுங்கள்.

6.4 ஒரே நேரத்தில் பதிவேற்றங்களுக்கு உகந்ததாக்குதல்

உங்கள் பயன்பாடு ஒரே நேரத்தில் பல பதிவேற்றங்களைக் கையாள வேண்டியிருந்தால், வெளியீட்டை மேம்படுத்த பதிவேற்ற செயல்பாட்டின் async பதிப்புகளை செயல்படுத்துவதை அல்லது threading ஐப் பயன்படுத்துவதை கருத்தில் கொள்ளுங்கள்.

6.5 உள்ளடக்க வகை மற்றும் மெட்டாடேட்டா

பதிவேற்றப்பட்ட கோப்புகளுக்கான உள்ளடக்க வகை மற்றும் தனிப்பயன் மெட்டாடேட்டாவை அமைப்பதற்கான ஆதரவைச் சேர்ப்பதைக் கருத்தில் கொள்ளுங்கள். உங்கள் R2 பக்கெட்டிற்குள் சரியான கோப்பு கையாளுதல் மற்றும் ஒழுங்கமைப்புக்கு இது முக்கியமானதாக இருக்கலாம்.

7. முடிவுரை

பைதான் மற்றும் boto3 நூலகத்தைப் பயன்படுத்தி Cloudflare R2க்கு கோப்புகளை பதிவேற்றுவது ஒரு நேரடி செயல்முறையாகும், இது பல்வேறு பயன்பாடுகளில் எளிதாக ஒருங்கிணைக்கப்படலாம். upload_to_cloudflare போன்ற மீண்டும் பயன்படுத்தக்கூடிய செயல்பாட்டை உருவாக்குவதன் மூலம், உங்கள் பயன்பாட்டின் வெவ்வேறு பகுதிகளில் உங்கள் கோப்பு பதிவேற்ற செயல்முறைகளை எளிமைப்படுத்தலாம்.

மேக சேமிப்பக தீர்வுகள் தொடர்ந்து பரிணமிக்கும் நிலையில், Cloudflare R2 செயல்திறன், செலவு சிக்கனம் மற்றும் S3 இணக்கத்தன்மையை தேடும் டெவலப்பர்களுக்கு ஒரு கவர்ச்சிகரமான விருப்பத்தை வழங்குகிறது. R2க்கு கோப்பு பதிவேற்றங்களை கையாளுவதில் தேர்ச்சி பெறுவதன் மூலம், நவீன மேக கணினி நிலப்பரப்பில் ஒரு மதிப்புமிக்க திறனை நீங்கள் பெறுகிறீர்கள்.

பிழைகளை கவனமாக கையாளவும், உங்கள் சான்றுகளை பாதுகாக்கவும், உற்பத்திப் பயன்பாட்டை நோக்கி நகரும்போது செயல்திறன் மேம்பாடுகளைக் கருத்தில் கொள்ளவும் நினைவில் கொள்ளுங்கள். இந்த கருவிகள் மற்றும் அறிவுடன், உங்கள் பைதான் பயன்பாடுகளில் Cloudflare R2ஐப் பயன்படுத்த நீங்கள் நன்கு தயாராக இருக்கிறீர்கள்.

Writing about the internet