2016-09-08 7 views
1

aws api로 Amazon S3 버킷에 대용량 비디오 파일을 업로드하고 있습니다.Laravel/Aws - 업로드 후 파일을 삭제하지 않습니다. MultipartUploader가 포함 된 s3 버킷

$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

지도 구조에 대한 권한을 부여하셨습니까? 즉 나에게 지난 시간을 무슨 일이 생긴 것 또한입니다 : P

당신은 자신에게 & 당신이 옳은 것

+0

아래 코드에서 업로드 방법에 대한 설명을 올리면 파일이 성공적으로 삭제됩니다. 그것이 내가 OS와 관련된 허가 오류가 아니라는 것입니다. – Abdullah

0

삭제를 업로드 할 수있는 권한을 부여해야, 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