Compartir a través de


Conceder acceso limitado a Dataverse archivos mediante firmas de acceso compartido

Durante una hora, cualquiera puede descargar un archivo almacenado en Dataverse usando una URL generada mediante el comando GetFileSasUrl. Esta URL proporciona acceso anónimo a cualquier persona durante esta hora, a partir del momento en que se genera la URL. La persona que invoca GetFileSasUrl para generar la URL debe tener acceso al registro que contiene el archivo.

Los archivos pueden ser archivos adjuntos, notas, columnas de archivos o columnas de imágenes. Existen algunas limitaciones

Parámetros

El mensaje GetFileSasUrl tiene los siguientes parámetros:

Name Type Description
Target EntityReference/
crmbaseentity
Identifica la fila de la tabla con los datos del archivo o imagen.
FileAttributeName string Identifica el nombre de la columna del archivo o de la imagen con los datos. Para registros de notas y atributos, este valor debe ser una cadena vacía.
DataSource string Un valor de "retained" o "bin" cuando el registro fue señalado para retención de datos a largo plazo o se eliminó en una tabla con la característica de papelera de reciclaje habilitada.

Response

Los datos devueltos por el mensaje GetFileSasUrl tienen una propiedad con estos datos Result :

Name Type Description
FileName string Nombre de archivo.
FileSizeInBytes int64 El tamaño del archivo en bytes.
MimeType string El tipo MIME del archivo.
SasUrl string La URL de la firma de acceso compartido (SAS) que se puede utilizar para acceder al archivo.

Ejemplos

Estas funciones de ejemplo muestran cómo utilizar el mensaje GetFileSasUrl con SDK para .NET y API de Web.

Este método GetFileSasUrl estático utiliza las clases GetFileSasUrlRequest y GetFileSasUrlResponse . La propiedad GetFileSasUrlResponse.Result devuelve una instancia de clase FileSasUrlResponse con la información necesaria para descargar un archivo de forma anónima.

/// <summary>
/// Generates a link for anonymous access to a file.
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance.</param>
/// <param name="target">The record that has the file data.</param>
/// <param name="fileAttributeName">Optional name of the file or image column</param>
/// <param name="dataSource">Optional source of the data when retained or deleted.</param>
/// <returns>Information to download a file</returns>
static FileSasUrlResponse GetFileSasUrl(IOrganizationService service, 
    EntityReference target, 
    string? fileAttributeName = null, 
    string? dataSource = null) { 

    var request = new GetFileSasUrlRequest() { 
        Target = target
    };

    if (target.LogicalName == "annotation" ||
        target.LogicalName == "activitymimeattachment"){

        //FileAttributeName is required
        request.FileAttributeName = string.Empty;

    }
    else
    {

        if (!string.IsNullOrEmpty(fileAttributeName))
        {
            request.FileAttributeName = fileAttributeName;
        }
        else
        {

            string message = "fileAttributeName is required ";
            message += "when the target isn't annotation ";
            message += "or activitymimeattachment";

            throw new Exception(message);
        }
    }
    
    if (!string.IsNullOrEmpty(dataSource)) {
        //dataSource should be 'retained' or 'bin'
        request.DataSource = dataSource;
    }

   var response = (GetFileSasUrlResponse)service.Execute(request);

    return response.Result;        
}

Utilice el SDK para .NET

Limitaciones

Se presentan las siguientes limitaciones:

Consulte también

Información general sobre imágenes y archivos
Usar datos de columna de archivo
Usar datos de columna de imagen
Usar datos de archivo con registros de Datos adjuntos y Notas