2016-09-08 27 views
1

aws apiを使用してAmazon S3バケットに大きなビデオファイルをアップロードしています。Laravel/Aws - アップロード後にファイルを削除しないs3バケット(MultipartUploader)

$uploader = new MultipartUploader($s3->getDriver()->getAdapter()->getClient(), $localFullFilePath, [ 
    'bucket' => env('S3_BUCKET'), 
    'key' => $s3fullFullFilePath, 
]); 

try { 
    $result = $uploader->upload(); 
    Log::info("Upload complete"); 
} catch (MultipartUploadException $e) { 
    Log::info($e->getMessage()); 
} 

次に、下のコードでアップロードした動画を削除します。

foreach ($oldVideos as $oneVideo) { 
    // $localFullFilePath = $localFilePath . $oneVideo;  
    unlink($localFullFilePath); 
} 

マイ動画が正常にアップロードするが、私は私のローカルファイルを削除しようとすると、それが与えるエラー「許可が拒否されました」。

私はS3にファイルをアップロードするときにのみ発生するため、ファイルのパーミッションエラーではないと確信しています。 読んだ後、APIはfcloseファイルではないと思います。

ヒントまたは回避策をお勧めしますか?

答えて

0

あなたはマップの構造に自分自身を許可しましたか?それは私に最後の時間を起こった何もだ:あなたがあなた自身にあなたが正しい

+0

以下のコードでアップロード方法をコメントすると、ファイルが正常に削除されます。だから私は確かに、それはOSに関連する許可エラーではない – Abdullah

0

を削除&をアップロードする権限を与える必要がありますP

、APIが近いファイルをしません。

// open a file 
$source = fopen($localFullFilePath, 'rb'); 

// pass a resource, not a path 
$uploader = new MultipartUploader($s3->getDriver()->getAdapter()->getClient(), $source, [ 
    'bucket' => env('S3_BUCKET'), 
    'key' => $s3fullFullFilePath, 
]); 

// upload 
try { 
    $result = $uploader->upload(); 
    Log::info("Upload complete"); 
} catch (MultipartUploadException $e) { 
    Log::info($e->getMessage()); 
} 

// close 
fclose($source); 

// now we can remove it 
関連する問題