Question

Moving files using laravel

I have a issue with moving images on digitalocean. I’m using the following code:

Storage::disk('do-spaces')->move('xxx/uploads/temp/'.$image_name_request, 'xxx/dps/images/'.$image->image_filename); 

source: https://laravel.com/docs/5.5/filesystem

I did the following checks:

  • checked if file in temp folder exists -> get back true
  • both $image_name_request and $image->image_filename are set
  • Code does not give an error but nothing is changed on digitalocean spaces.
  • check if dps/image file exists gives -> false

Any idea what i’m doing wrong or a way to debug this?

Subscribe
Share

I have same problem. Could someone tell what’s going on ?


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

With regards to moving/copying directories, this is a useful link: https://github.com/thephpleague/flysystem-aws-s3-v3/issues/128

Also; Storage::copy() doesn’t seem to do anything.

Storage::makeDirectory() and Storage::deleteDirectory() work though.

I am also having an issue with this. I’ve been using laravel’s Storage system with DO spaces for over a year now, it is storing files no problem. BUT when I try to Storage::move(‘folder1’, ‘folder2’) it executes just fine, but the directory has not been renamed. It’s like the command does nothing. I also tried Storage::rename.

We were not able to fix the move command. We solved it by uploading to the new location after that deleting the file from the old location.

Hi @mbodo,

This will require some troubleshooting.

Firstly, what I see, it’s possible Laravel doesn’t recognize ‘do-spaces’ as a configured disk.

Add DigitalOcean Spaces as a configured disk in Laravel

  1. Istall via Composer Flysystem Adapter for AWS SDK V3
composer require league/flysystem-aws-s3-v3
  1. Add the following disk to the array located in Config/filesystems.php file :
do_spaces' => [     
 'driver' => 's3',     
 'key' => env('DO_SPACES_KEY'),     
 'secret' => env('DO_SPACES_SECRET'),     
 'endpoint' => env('DO_SPACES_ENDPOINT'),     
 'region' => env('DO_SPACES_REGION'),     
 'bucket' => env('DO_SPACES_BUCKET'), 
],
  1. Add the following variables to your .env file
DO_SPACES_KEY= 
DO_SPACES_SECRET= 
DO_SPACES_ENDPOINT=sfo2.digitaloceanspaces.com (example) DO_SPACES_REGION=SFO2 (example) 
DO_SPACES_BUCKET=NAME_OF_YOUR_SPACE

Once you’ve added the above, you should be able to use the ‘s3’ driver for your disk.

Regards, KDSys