Dosya indirme API'si
Dosya indirme API'si, kullanıcıların özel bir görseldeki verileri depolama cihazlarında bir dosyaya indirmesine olanak tanır. Görselin indirilmesi için yönetici genel anahtarında kullanıcı onayı ve yönetici izninin sağlanması gerekir. Bu ayar, kuruluşunuzun dışarı aktarma ve paylaşım kiracı ayarlarında uygulanan indirme kısıtlamalarından ayrıdır ve bunlardan etkilenmez.
Not
Dosya indirme API'sinin üç yöntemi vardır:
exportVisualsContent
API sürüm 4.5'ten edinilebilirstatus
API sürüm 4.6'dan edinilebilir.exportVisualsContentExtended
API sürüm 5.3'ten edinilebilir.- Hangi sürümü kullandığınızı öğrenmek için pbiviz.json dosyasına bakın.
apiVersion
Dosya indirme API'sini kullanarak aşağıdaki türlerdeki dosyaları dışarı aktarın:
- .txt
- .Csv
- .Json
- .tmplt
- .xml
- .xlsx
İndirme başlamadan önce, görselin güvenilir bir kaynaktan geldiğini onaylamayı isteyen bir pencere görüntülenir.
Dosya indirme API'sini kullanma
Dosya indirme API'sini kullanmak için görsel özelliklerdeki privileges dizisine bir bildirim ekleyin.
Dosya indirme API'sinin üç yöntemi vardır:
- durum: API sürüm 4.6'dan kullanılabilir
exportVisualsContent
: API sürüm 4.5'ten kullanılabilirexportVisualsContentExtended
: API sürüm 5.3'ten kullanılabilir.
İki yöntem arasındaki fark, dönüş değeridir.
status
yöntemi
status yöntemi, dosya indirme API'sinin durumunu döndürür:
- PrivilegeStatus.DisabledBy Yönetici: Kiracı yönetici anahtarı kapalı
- PrivilegeStatus.NotDeclared: Görselde privileges dizisindeki yerel depolama için bildirim yok
- PrivilegeStatus.NotSupported: API desteklenmez. Daha fazla bilgi için sınırlamalara bakın.
- PrivilegeStatus.Allowed: API desteklenir ve izin verilir.
exportVisualsContent
yöntemi
yöntemi dört exportVisualsContent
parametreye sahiptir:
- content: string
- filename: string
- fileType: string - .pdf veya .xlsx bir dosyaya dışarı aktarırken parametresinin
fileType
base64
- fileDescription: dize
Bu yöntem, Boole değeri için çözümlenecek bir söz döndürür.
exportVisualsContentExtended
yöntemi
Yöntemin exportVisualsContentExtended
dört parametresi de vardır:
- content: string
- filename: string
- fileType: string - .pdf veya .xlsx bir dosyaya dışarı aktarırken parametresinin
fileType
base64
- fileDescription: dize
Bu yöntem, aşağıdaki parametreleri içeren bir tür ExportContentResultInfo
sonucuyla çözümlenecek bir promise döndürür:
- downloadCompleted – indirme işlemi başarıyla tamamlandıysa.
- filename – dışarı aktarılan dosya adı.
Örnek: dosya indirme API'si
Özel bir görselin içeriğini excel dosyasına ve metin dosyasına indirme örneği aşağıda verilmiştır.
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
}
}
}
}
Dikkat edilecekler ve sınırlamalar
- API yalnızca Power BI hizmeti ve Power BI masaüstünde desteklenir
- İndirilen bir dosyanın boyut sınırı 30 MB'tır.
- Bu API ayrıcalıklı bir API'dir.