Как читать файлы PPT большего размера (от 100 МБ до 2 ГБ) с сайта SharepointC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как читать файлы PPT большего размера (от 100 МБ до 2 ГБ) с сайта Sharepoint

Сообщение Anonymous »

Мне нужно прочитать большой файл PowerPoint (размером от 100 МБ до 2 ГБ) с сайта SharePoint и загрузить его в поток для использования в другом месте.
Я пытаюсь прочитал большой файл с сайта SharePoint и попробовал два разных подхода в своем локальном коде C#.
1-й подход

Код: Выделить всё

using Microsoft.Sharepoint.Client dll:

Web web = clientContext.Web;
clientContext.Load(web, website => website.ServerRelativeUrl);
clientContext.ExecuteQuery();
var serverRelativeURL = docURL.Replace("https://microsoft.sharepoint.com", "").Replace(" ", "%20");

var file = web.GetFileByServerRelativeUrl(serverRelativeURL);
clientContext.Load(file, f => f.Properties);
clientContext.ExecuteQuery();

var stream1 = file.OpenBinaryStream();
await clientContext.ExecuteQueryAsync();
Но file.OpenBinaryStream() может читать только файлы меньшего размера, например файлы КБ.
2-й подход

Код: Выделить всё

 using PnP.Core.Model.SharePoint dll:

using (PnPContext pnpCoreContext = PnPCoreSdk.Instance.GetPnPContext(clientContext))
{
var absoluteUrl = new Uri(new Uri("https://microsoft.sharepoint.com"), serverRelativeURL);
string relativepath = absoluteUrl.ToString().Replace("https://microsoft.sharepoint.com", "");
IFile fileToDownload = await pnpCoreContext.Web.GetFileByServerRelativeUrlAsync(relativepath);

Stream downloadedContentStream = await fileToDownload.GetContentAsync(true);

// Initialize a MemoryStream to hold the downloaded content
using (MemoryStream memoryStream = new MemoryStream())
{
var bufferSize = 2 * 1024 * 1024;  // 2 MB buffer
var buffer = new byte[bufferSize];
int read;

// Download the file bytes in chunks and write them to the MemoryStream
while ((read = await downloadedContentStream.ReadAsync(buffer, 0, buffer.Length)) != 0)
{
await memoryStream.WriteAsync(buffer, 0, read);
}

// Reset the position of the MemoryStream to the beginning
memoryStream.Position = 0;
}
Но в данном случае он способен прочитать файл размером 100 МБ, но не более того.
Ожидание: Цель: чтобы прочитать большой файл PowerPoint с сайта SharePoint и сохранить его в потоке.

Подробнее здесь: https://stackoverflow.com/questions/790 ... point-site
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Можно ли программно получить часовой пояс сайта Sharepoint с помощью Microsoft.SharePoint.Client?
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Загружайте файлы большего размера с помощью ZK
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Загружайте файлы большего размера с помощью ZK
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Читать и записать файлы в SharePoint с помощью Azure Cloud Services
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Доступ к SharePoint с помощью надстройки Hightrust, пользовательская служба WCF, размещенная в SharePoint, текущий польз
    Anonymous » » в форуме C#
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»