Rozhranie API na stiahnutie súboru

Rozhranie API na stiahnutie súboru umožňuje používateľom sťahovať údaje z vlastného vizuálu do súboru vo svojom úložisku. Stiahnutie vizuálu si vyžaduje súhlas používateľa a povolenie správcu uvedené v globálnom prepínači správcu. Toto nastavenie je oddelené od a nie je ovplyvnené obmedzeniami sťahovania použitými v nastaveniach nájomníka exportu a zdieľania vo vašej organizácii.

Snímka obrazovky zachytávaca nastavenie správcu umožňujúceho sťahovanie vlastných vizuálov.

Poznámka

Rozhranie API sťahovania súborov má tri spôsoby:

  • exportVisualsContent je k dispozícii od rozhrania API verzie 4.5
  • status je k dispozícii od rozhrania API verzie 4.6.
  • exportVisualsContentExtended je k dispozícii od rozhrania API verzie 5.3.
  • Ak chcete zistiť, ktorú verziu používate, pozrite si apiVersion pbiviz.json súbore.

Rozhranie API na stiahnutie súboru použite na export do súborov nasledujúcich typov:

  • .txt
  • .Csv
  • .Json
  • .tmplt
  • .xml
  • .pdf
  • .xlsx

Skôr než začne sťahovanie, zobrazí sa okno s požiadavkou na potvrdenie toho, či vizuál pochádza z dôveryhodného zdroja.

Snímka obrazovky s požiadavkou na potvrdenie stiahnutia iba vtedy, ak pochádza z dôveryhodného zdroja.

Ako používať rozhranie API na stiahnutie súboru

Ak chcete použiť rozhranie API na stiahnutie súboru, pridajte deklaráciu do poľa oprávnení v možnostiach vizuálu.

Rozhranie API sťahovania súborov má tri spôsoby:

Rozdiel medzi týmito dvomi metódami je vrátená hodnota.

Metóda status

Metóda status vracia stav rozhrania API na stiahnutie súboru:

  • PrivilegeStatus.DisabledBy Spravovanie: prepínač správcu nájomníka je vypnutý
  • PrivilegeStatus.NotDeclared: vizuál nemá žiadnu deklaráciu pre lokálne úložisko v poli oprávnenia
  • PrivilegeStatus.NotSupported: rozhranie API nie je podporované. Ďalšie informácie nájdete v téme Obmedzenia .
  • PrivilegeStatus.Allowed: rozhranie API je podporované a povolené.

Metóda exportVisualsContent

Metóda exportVisualsContent má štyri parametre:

  • content: reťazec
  • názov súboru: reťazec
  • fileType: string (typ súboru): reťazec – pri exporte do .pdf alebo .xlsx súboru fileType by mal byť parameter base64
  • fileDescription: reťazec

Táto metóda vráti prísľub, ktorý bude vyriešený pre booleovskú hodnotu.

Metóda exportVisualsContentExtended

Metóda exportVisualsContentExtended má tiež štyri parametre:

  • content: reťazec
  • názov súboru: reťazec
  • fileType: string (typ súboru): reťazec – pri exporte do .pdf alebo .xlsx súboru fileType by mal byť parameter base64
  • fileDescription: reťazec

Táto metóda vráti sľub, ktorý sa vyrieši vo výsledku typu ExportContentResultInfo , ktorý obsahuje nasledujúce parametre:

  • DownloadCompleted – ak sa sťahovanie úspešne dokončilo.
  • filename – názov exportovaného súboru.

Príklad: Rozhranie API na stiahnutie súboru

Tu je príklad toho, ako stiahnuť obsah vlastného vizuálu do excelového súboru a textového súboru.

import IDownloadService = powerbi.extensibility.IDownloadService;
...

export class Visual implements IVisual {
    ...
    private downloadService: IDownloadService;
    ...

    constructor(options: VisualConstructorOptions) {
        this.downloadService = options.host.downloadService;
         ...

        const downloadBtn: HTMLElement = document.createElement("button");
        downloadBtn.onclick = () => {
            let contentXlsx: string = ...;//content in base64
            let contentTxt: string = ...;
            this.downloadService.exportVisualsContent(contentTxt, "mytxt.txt", "txt", "txt file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContent(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContentExtended(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result.downloadCompleted) {
                    //do something
                    console.log(result.fileName);
                }
            }).catch(() => {
                //handle error
            });
        };

        // if you are using API version > 4.6.0
        downloadBtn.onclick = async () => {
            try {
                const status: powerbi.PrivilegeStatus = await this.downloadService.exportStatus();
                if (status === powerbi.PrivilegeStatus.Allowed) {
                    const result = await this.downloadService.exportVisualsContent('aaaaa','a.txt', 'text/plain', 'aa');
                    // handle result
                } else {
                    // handle if the API is not allowed
                }

            } catch (err) {
                //handle error
            }
        }
    }
}

Dôležité informácie a obmedzenia

  • Rozhranie API je podporované len v aplikáciách služba Power BI a Power BI Desktop.
  • Limit veľkosti pre stiahnutý súbor je 30 MB.
  • Toto rozhranie API je privilegované rozhranie API.