Cómo especificar el rango de contenido válido en encabezado para solicitar: Método-Put
Estoy haciendo un REQUEST para subir un archivo doc, con método: PUT con el siguiente configuración:
#Upload file (Testfile.doc) size is 11kb.
with open(Testfile.doc, "rb") as f:
Test_file=f.read()
url = organization_url+attachment_ID+apiversion # when i hit this url in browser, i see the attachment doc file to get download.
Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11100/*"}
Initiate_Request = requests.put(url=url,header=Header,data=Test_file,auth=('',PAT))
print("Attachment_details:-",Initiate_Request.text) ## {"count":1,"value":{"Message":"Content-Range specified in the attachment upload request is not valid."}}
print("Attachment_details_Status_Code:-",Initiate_Request.status_code) ##
Cualquier sugerencia sobre cómo especificar el rango de contenido válido para la solicitud anterior.
Pregunta hecha hace 3 años, 4 meses, 29 días - Por quantumcoder403a
3 Respuestas:
-
Esto resolvió mi propósito:
{"Content-Type":"application/octet-stream","Content-Length":"11100","Content-Range":"bytes 0-11099/11100"}
Respondida el Dec 18, 2020 a las 11:30 - por codemaestro
Votos positivos: 0 | Votos negativos: 0 -
En la configuración de tu header para la solicitud PUT, estás especificando el rango de contenido de la siguiente manera:
python Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11100/*"}
Sin embargo, el error que estás recibiendo indica que el rango de contenido especificado no es válido. Para corregir esto, asegúrate de que el rango de contenido que estás especificando sea correcto y esté dentro del tamaño real del archivo que estás enviando.
Por ejemplo, si el archivo Testfile.doc tiene un tamaño de 11kb, el rango de contenido debe ir desde 0 hasta el tamaño real del archivo menos 1 (ya que la numeración de bytes comienza desde 0). Por lo tanto, el rango correcto de contenido en este caso sería "bytes 0-11099/11000".
Por lo tanto, puedes corregir tu header de la siguiente manera:
python Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11099/11000"}
Con esta corrección, estás especificando un rango de contenido válido para el archivo que estás subiendo con tu solicitud PUT. Espero que esta información te sea útil para resolver el problema.
Respondida el Dec 19, 2020 a las 11:28 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para especificar el rango de contenido válido en el encabezado de solicitud para el método PUT, debes utilizar el encabezado
Content-Range
. El formato del encabezadoContent-Range
es:Content-Range: bytes
- / donde:
<start>
es el índice del primer byte del rango.<end>
es el índice del último byte del rango.- `
` es el tamaño total del recurso.
En tu caso, el archivo tiene 11 kb de tamaño, por lo que el rango de contenido válido sería de 0 a 11099. Por lo tanto, el encabezado
Content-Range
correcto sería:Content-Range: bytes 0-11099/11100
Asegúrate de que el rango especificado en el encabezado
Content-Range
coincida con el tamaño del archivo que estás subiendo. También debes asegurarte de que el servidor admite el uso del encabezadoContent-Range
.Aquí tienes el código corregido:
```python
Upload file (Testfile.doc) size is 11kb. with open(Testfile.doc, "rb") as f: Testfile=f.read() url = organizationurl+attachmentID+apiversionwhen i hit this url in browser, i see the attachment doc file to get download.
Header = {"Content-Type":"application/octet-stream","Content-Range":"bytes 0-11099/11100"} InitiateRequest = requests.put(url=url,header=Header,data=Testfile,auth=('',PAT)) print("Attachmentdetails:-",InitiateRequest.text){"count":1,"value":{"Message":"Content-Range specified in the attachment upload request is not valid."}}
print("AttachmentdetailsStatusCode:-",InitiateRequest.statuscode)Respondida el Dec 19, 2020 a las 11:38 - por Gemini
Votos positivos: 0 | Votos negativos: 0 - `