Object metadata keys are lowercased when uploading to GCS
- Lenguaje dominante
- Python
- Estrellas
- 2.1k
- Forks
- 931
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 4
Descripción
## Summary
Mixed-case metadata is lowercased when using libcloud to upload objects to Google Cloud Storage.
## Detailed Information
I'm using libcloud to upload files to a Google Cloud Storage bucket together with object metadata.
In the process, the keys in my metadata dict are being lowercased. This is not due to Google Cloud Storage, which does support mixed case metadata.
The issue can be reproduced following the example from the docs:
```
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
cls = get_driver(Provider.GOOGLE_STORAGE)
driver = cls('SA-EMAIL', './SA.json') # provide service account credentials here
FILE_PATH = '/home/user/file'
extra = {'meta_data': {'camelCase': 'foo'}}
# Upload with metadata
with open(FILE_PATH, 'rb') as iterator:
obj = driver.upload_object_via_stream(iterator=iterator,
container=container,
object_name='file',
extra=extra)
```
The file uploads succesfully, but resulting metadata will look as follows:

Where `camelCase` has been turned into `camelcase`.
I'm using apache-libcloud==3.0.0 with Python 3.8 on Linux (the python:3.8 Docker image).
Guía de contribución
Línea de trabajo
Comienza en el punto de entrada upload_object_via_stream y sigue cómo se prepara el diccionario de metadatos adicional para Google Cloud Storage. Reproduce el ejemplo con la clave camelCase y verifica después que los metadatos del objeto subido conservan su uso original de mayúsculas y minúsculas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- google-cloud, python
- Área
- cloud
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100