Necesito convertir el siguiente comando cURL:
curl --request PUT \ --url https://storage.bunnycdn.com/storage/path/index.jpeg \ --header 'AccessKey: <AccessKey>' \ --header 'Content-Type: application/octet-stream' \ --data-binary @/home/path/to/index.jpegque envía una solicitud de venta con una imagen para cargar en un CDN
a una solicitud de https put, especialmente con --data-binary
Lo intenté :
try { var request = new http.MultipartRequest("PUT", uri); request.headers.addAll({ 'content-type': 'multipart/form-data', 'AccessKey': '<AccessKey>', }); request.files.add( await http.MultipartFile.fromPath( 'file', _image.path, filename: fileName, ), ); var response = request.send().then((value) => setState(() { isLoading = false; })); } catch (e) { print(e); }pero desafortunadamente el archivo llega al almacenamiento CDN con un formato incorrecto.
¿Cómo puedo cargar la imagen con http put request como --data-binary?
Puede usar cartero para convertir curl a algunos idiomas, para que el cartero de javascript devuelva esto:
var request = require('request'); var options = { 'method': 'PUT', 'url': 'https://storage.bunnycdn.com/storage/path/index.jpeg', 'headers': { 'AccessKey': '<AccessKey>', 'Content-Type': 'application/octet-stream' }, body: '@/home/path/to/index.jpeg' }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });Esto es solo un ejemplo, así que si necesitas algo más elaborado hazlo.