De acuerdo con docs, contentType es opcional y intentará determinar el tipo correcto de mime basado en la extensión de archivo. Sin embargo, nunca pareció adivinar el tipo MIME y tenga por defecto application/octet-streamLos archivos de Amazon S3 cargados con AWS SDK para PHP siempre son "application/octet-stream"?
Aquí está mi código:
$s3 = new AmazonS3();
$opt = array( 'fileUpload' => $_FILES['file']['tmp_name'],
'storage' => Amazons3::STORAGE_REDUCED);
$r = $s3->create_object('mybucket', $_FILES['file']['name'], $opt);
Aquí hay una captura de pantalla de mi consola AWS:
¿Cómo configura automáticamente el tipo de contenido adecuado sin configurar la opción contentType, o realmente tiene que configurarlo manualmente?
Información adicional: Si descargo un archivo de la consola (que originalmente cargué a través de SDK) y lo cargo de nuevo con la consola, se configura el tipo de contenido adecuado (por ejemplo: image/gif para archivos GIF en lugar de la aplicación/octet-stream)
Sí, siempre puedo configurar contentType, pero la documentación dice que se hace automáticamente: * Si un archivo se está cargando a través de fileUpload como una ruta del sistema de archivos, intentará determinar el tipo de mime correcto basado en la extensión de archivo. * pero eso no está sucediendo, por lo que probablemente haya un error. – IMB
'ContentType' con mayúscula' C'. De lo contrario, no funciona para mí. –
La respuesta anterior funcionó para mí hasta que me mudé al nuevo SDK. No puedo conseguir que funcione más: http://stackoverflow.com/questions/21892352/specify-content-type-in-aws-phps-upload-function –