server-client-python icon indicating copy to clipboard operation
server-client-python copied to clipboard

[TYPE 3] - Add "max_filesize" parameter to a workbook's `download` method

Open NFeruchBCG opened this issue 1 year ago • 6 comments

Description

It would be helpful to be able to pass a max_filesize parameter to a workbook's download method that will return early if a workbook is too large 🙂

NFeruchBCG avatar Oct 15 '24 01:10 NFeruchBCG

So you want the user to be able to set a maximum size, and if the workbook size exceeds this user defined value, don't download?

jorwoods avatar Oct 15 '24 01:10 jorwoods

Yes exactly - "only download the file if it's less than X units." I had megabytes in mind but open to whatever makes the most sense

This is because the size of workbook files can vary greatly, and I've seen them range from a couple kilobytes to a couple gigabytes. It would put a strain on our server's resources to download too large of files

NFeruchBCG avatar Oct 15 '24 01:10 NFeruchBCG

Workbooks and datasources have a size attribute. Why can the user not just write their own if statement to check that prior to attempting the download?

jorwoods avatar Oct 15 '24 01:10 jorwoods

There's a problem with tableau's rest api, where the "Get Workbook" endpoint returns a constant 1 for all workbooks. Is this happening just for us?

NFeruchBCG avatar Oct 15 '24 01:10 NFeruchBCG

Actually sorry, only for some workbooks - maybe workbooks less than 1 mb are being rounded up to 1?

I haven't had much time to troubleshoot this problem specifically, sorry for the lack of information

NFeruchBCG avatar Oct 15 '24 01:10 NFeruchBCG

Can you try checking how many you have of each?

print("1mb workbooks", len(server.workbooks.filter(size="1")))
print(">1mb workbooks", len(server.workbooks.filter(size__gt="1")))

jorwoods avatar Oct 15 '24 23:10 jorwoods