Rumah > Artikel > pembangunan bahagian belakang > Membangunkan aplikasi agnostik awan
Baru-baru ini, saya mula mengerjakan projek peribadi di mana saya ingin membina aplikasi yang bersifat agnostik awan - iaitu ia boleh digunakan pada mana-mana pembekal awan dengan perubahan kod yang minimum/tiada. Keperluan utama adalah untuk memisahkan logik perniagaan dengan logik khusus penyedia awan.
Dalam siaran ini, saya ingin berkongsi pendekatan yang diikuti.
Kod di bawah menggunakan python
from abc import ABC, abstractmethod class IObjectStorage(ABC): @abstractmethod def upload_object_to_bucket(self, file_name, file_content): _raise an error that method is not implemented_
class AWSObjectStorageConnector(IObjectStorage): def __init__(self, bucket_name): _Initialize a s3 client using boto3 and initialize a variable using bucket name_ def upload_object_to_bucket(self, file_name, file_content): _Implement the logic to upload the file to AWS S3 bucket_
Kaedah ini mengambil pembolehubah penyedia awan yang akan diluluskan daripada kaedah panggilan
def get_object_storage(cloud_provider, bucket_name) -> IObjectStorage: if cloud_provider == 'aws': return AWSObjectStorageConnector(bucket_name=bucket_name) else: raise ValueError(f'Unsupported cloud provider: {cloud_provider}')
pembolehubah cloud_provider akan dibaca daripada pembolehubah persekitaran yang diluluskan sebagai input. Ini memastikan logik yang sama berfungsi dengan baik dengan penyedia awan yang berbeza.
object_storage_connector = get_object_storage(cloud_provider=provider, bucket_name=bucket_name)
Sila berasa bebas untuk mengulas dengan sebarang cadangan atau maklum balas.
Atas ialah kandungan terperinci Membangunkan aplikasi agnostik awan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!