Move_uploaded_file est-il nécessaire pour le stockage local avant le stockage dans le cloud?


AnchoisLégende

Je travaille sur une application qui permet aux utilisateurs de télécharger une image sur le système et nous stockons cette image sur le stockage cloud (S3). Actuellement, une fois l'image téléchargée, nous traitons leur fichier en copiant le fichier temporaire localement via move_uploaded_file(), puis en utilisant ce fichier local pour le télécharger sur S3. Cette copie locale est-elle une nécessité ou est-il possible de passer outre cette étape et de télécharger directement sur le stockage cloud sans jamais stocker une copie locale?

$temp = $_FILES['file']['tmp_name'];
$target = ABSPATH.'uploads/';
$name = $_FILES["file"]["name"];
$targetFile = $target . $name;
move_uploaded_file($temp,$targetFile);

//upload local file to s3
$this->saveToCloud($this->s3Path,$targetFile);

Avant que le fichier ne soit copié sur le stockage local via le move_uploaded_filestockage php tmp:

/Applications/MAMP/tmp/php/phpx3uBiT

Ce que j'aimerais faire, c'est simplement:

 $this->saveToCloud($this->s3Path,$_FILES["file"]["tmp_name"]);

Merci d'avance!

Teddy Cela

Si vous pensez à des problèmes de performances, vous ne devriez PAS vous en soucier move_uploaded_filecar il suffit de faire quelques vérifications et de renommer simplement son nom (chemin). La consommation du processeur est minime. À moins que la destination du fichier temporaire ne se trouve sur un disque dur externe et qu'il nécessite un transport réseau.

Si vous souhaitez alléger le processus du serveur, vous pouvez envisager d'utiliser AWS SDK Javascript pour navigateur et télécharger le fichier directement depuis le navigateur client vers votre compartiment S3 (consultez ce lien pour savoir comment le faire: https://docs.aws.amazon .com / sdk-pour-javascript / v2 / guide-du-développeur / exemple-s3-album-photo.html # exemple-s3-album-photo-ajout-photos ). En utilisant cette méthode, vous devez prendre en compte la création d'une requête HTTP uniquement pour enregistrer les informations de fichier sur votre base de données après / avant les téléchargements de fichiers.

Si vous n'êtes pas intéressé à utiliser AWS SDK Javascript pour navigateur, vous pouvez essayer: $this->saveToCloud($this->s3Path,$_FILES['file']['tmp_name']); mais je ne suis pas sûr que cela fonctionne, je ne l'ai pas essayé.

J'espère que ça aide

Articles connexes


Synchroniser le stockage local

Marcus Downing Je recherche une solution qui permette au stockage local d'un navigateur d'être moins local, afin que les gens puissent accéder à leurs données sur plusieurs appareils. La méthode traditionnelle consiste à exécuter une base de données sur un ser

Effacer le stockage local

qkhckgxhp Quels sont les moyens de supprimer le localStoragecôté utilisateur et côté site Web? Pour le site Web, j'ai trouvé le " localStorage.clear()", mais je ne peux pas savoir s'il efface tout le localStorage ou spécifiquement pour le même domaine. En ce q