2015-01-03 14 views
5

Próbuję przesłać plik do folderu wewnątrz wiadra s3. robie następujących w PHP:amazon s3, prześlij plik w folderze w wiaderku

$name = $_FILES['file']['name']; 
$size = $_FILES['file']['size']; 
$tmp = $_FILES['file']['tmp_name']; 
$bucket= $_POST['bucket']; 

$actual_image_name = explode('.',$name)[0]."-".time().".".$ext; 
$s3->putObjectFile($tmp, $bucket , $actual_image_name, S3::ACL_PUBLIC_READ); 

Nazwa wiadro jest ciągiem wysyłane do PHP i wskazuje podfolder użyciu ukośnik:

'<bucket name>/<subfolder>' 

jednak, kiedy załadować nowy obraz do moje wiadro, jest ono przesyłane do korzenia wiadra. Jak mogę przesłać ten plik do podfolderu w moim segmencie?

Thx

+1

Jeśli ktoś używa Laravel: 'Storage :: disk ('s3') -> put ('created-directory-name /'.$ fileName, $ fileObject,' public ');' – partho

Odpowiedz

21

Nazwa podkatalogu należy dodać na początku nazwy pliku, a nie na końcu nazwy wiadra.

+0

thx, ma sens teraz :) –

+0

czy możesz podać przykład? coś jak 'photos/bucket-732h44d2', jeśli chcę użyć mojego folderu' photos'? –

+0

dla innych, jeśli nazwa pliku to '' 'test.png''', wstaw do' '' (bucket1/folder1 /) '' ', a następnie spróbuj wstawić do' '' bucket1''' z nazwą pliku ' '' "folder1/test.png" (ostatnia ścieżka będzie - bucket1/folder1/test.png) '' ' – kishorer747