2011-05-25 7 views
5

Puedo subir archivos o directorios a un depósito con AWS .NET SDK, pero siempre terminan en la carpeta raíz.¿Cómo cargo un archivo/directorio a una carpeta dentro de un depósito?

¿Hay alguna manera de cargar un archivo en un directorio existente?

  • corregir. Más información:

Así que estoy usando una TransferUtilityUploadDirectoryRequest para cargar un directorio desde mi disco local a S3. Me gustaría que los archivos se carguen en una carpeta del contenedor con el mismo nombre que la carpeta que seleccioné.

Por ejemplo. si elijo el directorio c:/cosas que se cargarán, quiero que el contenido de c:/cosas vaya en BucketName/cosas, no directamente en el depósito.

espero que sea claro lo que estoy tratando de hacer, si no voy a tratar de proporcionar más información

Respuesta

4

La versión más reciente de la AWS SDK para .NET le permite establecer la propiedad KeyPrefix en el UploadDirectoryRequest (más información here).

+0

¡Perfecto! La versión que tengo no tiene esa opción. –

4

Parece tras Google alrededor, se especifica una clave. Me tomó un tiempo, pero creo que la clave es algo así como este ejemplo:

string key = string.Format("{0}/{1}", folder, filename); 
PutObjectRequest rq = new PutObjectRequest() 
{ 
    AutoCloseStream = false, 
    BucketName = s3BucketName, 
    InputStream = stream, 
    Key = key 
}; 

S3ClientInstance.PutObject(rq).Dispose(); 
+0

Hmmm, estaba esperando algo que funcionaría para un directorio y no por archivo individual. TransferUtilityUploadRequest también tiene una clave, pero no parece haber una forma de establecer una clave común para la carga de un directorio. Gracias por su contribución. –

Cuestiones relacionadas