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?

edited by MattIPv4

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.

×
1 answer

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'), 
    ],
    
  2. 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

  • Dear KDSys,

    Thanks for the reaction. The strange thing is that the file system is in place. I did the following to test the system:

    storing the file:

    $filename = sha1(time()).$request->file('file')->getClientOriginalName();
    $request->file('file')->storeAs('xxx/uploads/temp/',$filename, 'do-spaces');
    Storage::disk('do-spaces')->setVisibility('xxx/uploads/temp/'.$filename, 'public');
    

    Checking if the file exists"

    $exists = Storage::disk('do-spaces')->
    exists('ligplaats/uploads/temp/'.$image_name_request);
    dd($exists); 
    

    gives true

    Trying to move the file:

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

    Did a visual check and checked by this code:

    $exists = Storage::disk('do-spaces')->exists('ligplaats/uploads/temp/'.$image->image_filename);
    dd($exists);
    

    gives false.

    Any idea what can be the issue?

    thanks for the reply.

    maarten

Submit an Answer