Estoy cargando el contenido de un archivo a s3 usando el punto final Put Object e intentando usar el encabezado de solicitud x-amz-tagging .
Consulte la documentación aquí: http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html .
Como en el ejemplo 6 en el enlace de arriba:
Ejemplo 6: cargar un objeto y especificar etiquetas
En esta solicitud de carga de objetos, especifica el encabezado x-amz-tagging opcional para agregar etiquetas al objeto.
Copie PUT /example-object HTTP/1.1 Host: example-bucket.s3.amazonaws.com Aceptar: /
Autorización:cadena de autorización Fecha: jueves, 22 de septiembre de 2016 21:58:13 GMT x-amz-tagging: etiqueta1=valor1&etiqueta2=valor2[... bytes de datos de objeto]
Genero una cadena base como la que se usa para generar la cadena de autorización:
String baseString = "PUT\n\ntext/plain\n" + currentDate + "\n" + "x-amz-tagging:tag1=value1&tag2=value2" + "\n" + "/" + LOG_BUCKET_NAME + THE_REST_OF_THE_URL;Luego construye mi solicitud así:
request.setRawHeader("Date", currentDate); request.setRawHeader("Authorization", authorizationString); request.setRawHeader("x-amz-tagging", "tag1=value&tag2=value2);Recibo un error prohibido cada vez, pero agregar metadatos funciona perfectamente:
Cadena básica:
String baseString = "PUT\n\ntext/plain\n" + currentDate + "\n" + "x-amz-meta-reviewedby:my_email@domain.com" + "\n" + "/" + LOG_BUCKET_NAME + THE_REST_OF_THE_URL;Y entonces:
request.setRawHeader("Date", currentDate); request.setRawHeader("Authorization", authorizationString); request.setRawHeader("X-Amz-Meta-ReviewedBy", "my_email@domain.com");¿Quizás se requieren permisos de usuario adicionales para agregar etiquetas?
De hecho, era un problema de permisos. La solución implicó habilitar los permisos de usuario para el etiquetado de objetos.