从 API 上传时如何设置 FileName 值?

How do I set the FileName value when doing an upload from the API?

我在代码中使用 Google Analytics v3 库将数据上传到自定义数据集。我注意到当我从 UI(浏览器)上传这些数据时,文件名参数会自动为我填充。(下面的屏幕截图

我试图在这个 guide

中找到答案

这是我的代码:

            var service = new AnalyticsService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = cr,
                    ApplicationName = "Analytics API Sample"
                });

            //Upload the contents of a file to a custom data set.
            try
            {
                const string accountId = "65651631";
                const string webPropertyId = "UA-65651631-1";
                const string customDataSourceId = "WMIjJuXXSyKZC8x8YOnbYQ";
                FileStream realCsv = new 
                   FileStream(@"C:\Users\Downloads\TestData - template.csv", FileMode.Open);
                var upload = service.Management.Uploads.UploadData(accountId, webPropertyId,
                    customDataSourceId, realCsv, "application/octet-stream").Upload();

                realCsv.Close();
                realCsv.Dispose();

不幸的是,客户端库从 POST 请求中删除了文件名。但是,如果您自己制定请求,例如 CURL,文件名将保留在 POST 正文中,并在网络中正确标记 UI.

curl -X POST -H "https://www.googleapis.com/upload/analytics/v3/management/accounts/<ACCOUNT>/webproperties/<PROPERTYID>/customDataSources/<DATASOURCEID>/uploads?uploadType=media" -F "upload=@filename.csv;type=application/octet-stream"

我知道这不是您想要的答案,但希望对您有所帮助。