Maison  >  Article  >  cadre php  >  Comment utiliser ThinkPHP6 pour implémenter les opérations de téléchargement et de téléchargement de fichiers OSS ?

Comment utiliser ThinkPHP6 pour implémenter les opérations de téléchargement et de téléchargement de fichiers OSS ?

PHPz
PHPzoriginal
2023-06-12 11:28:402668parcourir

Avec le développement continu de la technologie Internet, les services de stockage cloud attirent de plus en plus d'attention. Alibaba Cloud Object Storage (OSS) est un service de stockage cloud sécurisé, stable et hautement évolutif utilisé pour stocker d'énormes quantités de données. Cet article explique comment utiliser le framework ThinkPHP6 pour implémenter les opérations de téléchargement et de téléchargement de fichiers Alibaba Cloud OSS.

1. Créer un bucket Alibaba Cloud OSS

Tout d'abord, vous devez créer un bucket pour stocker les fichiers sur le site officiel d'Alibaba Cloud. Le bucket équivaut à un dossier dans le cloud, utilisé pour stocker les fichiers téléchargés sur Alibaba Cloud OSS. La méthode de création d'un bucket dépasse le cadre de cet article. Les lecteurs peuvent consulter des didacticiels pertinents sur le site officiel d'Alibaba Cloud.

Après la création, vous devez obtenir les trois paramètres suivants :

1. AccessKeyId : l'ID utilisateur pour accéder à OSS.
2. AccessKeySecret : clé utilisateur pour accéder à OSS.
3. Endpoint : l'adresse du service OSS.

Ces paramètres seront utilisés dans l'implémentation ultérieure du code.

2. Installez le SDK Alibaba Cloud OSS

Avant d'utiliser le SDK Alibaba Cloud OSS, vous devez l'installer. Vous pouvez utiliser composer pour installer, la commande est la suivante :

composer require aliyuncs/oss-sdk-php

Une fois l'installation terminée, vous devez créer le fichier de configuration oss.php dans le répertoire de configuration. Le fichier de configuration doit contenir les trois paramètres suivants :

'accessKeyId' => 'Alibaba Cloud AccessKeyId',
'accessSecret' => 'Alibaba Cloud AccessKeySecret',
'endpoint' => 'Adresse du service OSS',

Afin de faciliter l'acquisition des paramètres de configuration, vous pouvez également définir ces paramètres dans le fichier .env et créer un fichier de configuration oss.php dans le répertoire config, comme indiqué ci-dessous :

'accessKeyId' => env('OSS_ACCESS_KEY_ID' ),
'accessSecret' => env('OSS_ACCESS_KEY_SECRET'),
'endpoint' => env('OSS_ENDPOINT'),

3. Opération de téléchargement de fichier

Après avoir terminé l'installation et les paramètres du SDK Alibaba Cloud OSS. Après la configuration, vous pouvez démarrer l'opération de téléchargement de fichiers. Créez la méthode de téléchargement dans le contrôleur, le code est le suivant :

utilisez OSSOssClient;
utilisez OSSCoreOssException;

public function upload()

{
    $accessKeyId = config('oss.accessKeyId');
    $accessKeySecret = config('oss.accessSecret');
    $endpoint = config('oss.endpoint');
    $bucket = 'your_bucket_name';

    // 创建OSSClient实例
    try {
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    } catch (OssException $e) {
        printf(__FUNCTION__ . "阿里云OSS连接失败:error[%s]

", $e->getMessage());

        return;
    }

    // 获取文件
    $file = request()->file('file');
    if (!$file) {
        return "上传文件不能为空";
    }

    // 上传文件
    $fileName = $file->getOriginalName();
    $filePath = $file->getRealPath();
    try {
        $result = $ossClient->uploadFile($bucket, $fileName, $filePath);
    } catch (OssException $e) {
        return "文件上传失败";
    }

    if (isset($result['oss-request-url'])) {
        return "文件上传成功";
    } else {
        return "文件上传失败";
    }

}

avant d'obtenir d'abord dans la méthode Trois paramètres lors de la création du bucket, puis créez une instance OSSClient. Obtenez ensuite le fichier téléchargé via request()->file('file'), utilisez la méthode getOriginalName() pour obtenir le nom d'origine de. le fichier téléchargé et utilisez la méthode getRealPath() pour l'obtenir. Le chemin de fichier temporaire du fichier téléchargé. Enfin, utilisez la méthode uploadFile() pour télécharger le fichier sur Alibaba Cloud OSS

Opération de téléchargement de fichier

. Semblable à l'opération de téléchargement de fichiers, l'opération de téléchargement de fichiers nécessite également l'utilisation du SDK Alibaba Cloud OSS. Créez la méthode de téléchargement dans le code comme suit :

utilisez OSSOssClient ;
utilisez OSSCoreOssException

public function download()

{
    $accessKeyId = config('oss.accessKeyId');
    $accessKeySecret = config('oss.accessSecret');
    $endpoint = config('oss.endpoint');
    $bucket = 'your_bucket_name';

    // 创建OSSClient实例
    try {
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    } catch (OssException $e) {
        printf(__FUNCTION__ . "阿里云OSS连接失败:error[%s]
 ;

", $e->getMessage());

        return;
    }

    // 获取要下载的文件名称
    $object = 'your_object_name';

    // 下载文件
    $content = '';
    try {
        $content = $ossClient->getObject($bucket, $object);
    } catch (OssException $e) {
        return "指定的文件不存在";
    }

    if ($content !== '') {
        // 文件下载操作
    } else {
        return "文件下载失败";
    }

}

doit également être créé avant de l'obtenir dans la méthode Bucket trois paramètres, puis créer une instance OSSClient. Obtenez le fichier à télécharger via $object et utilisez la méthode getObject() pour télécharger le fichier localement. L'opération de téléchargement de fichier peut définir le type de fichier, la taille et d'autres informations via la méthode header(), et enfin afficher le contenu du fichier via echo pour réaliser l'opération de téléchargement de fichier.

Ce qui précède explique comment utiliser ThinkPHP6 pour implémenter les opérations de téléchargement et de téléchargement de fichiers Alibaba Cloud OSS. Grâce à l'introduction de cet article, les lecteurs peuvent maîtriser l'utilisation du SDK Alibaba Cloud OSS et acquérir une compréhension plus approfondie des services de stockage cloud.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn