Изменения изображений Sharepoint - PullRequest
2 голосов
/ 30 марта 2012

У меня есть небольшое клиентское приложение на C #, которое отправляет изображения на сайт sharepoint через веб-сервис. Поскольку изображения могут быть довольно большими, мне нужно проверить, не изменились ли файлы, чтобы мне не нужно было отправлять файл снова.

Я проверяю, изменился ли файл, вычисляя, запрашивая MD5-хеш файла с сервера и сравнивая его с хэшем файла на клиенте.

Странно то, что этот подход работает с примерно 60% моих изображений, в остальном сервер возвращает другой хэш. Если я загружаю файл с sharepoint и заменяю локальный, то хеш совпадает.

Я также пытался с CRC32 с тем же результатом

Кто-нибудь знает, добавляет ли Sharepoint информацию в файлы изображений, когда они публикуются в стандартной библиотеке ресурсов.

Это функция, которую я использую для расчета MD5

protected string GetMD5HashFromFile(byte[] file)
{
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] retVal = md5.ComputeHash(file);

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < retVal.Length; i++)
    {
        sb.Append(retVal[i].ToString("x2"));
    }
    return sb.ToString();
}

РЕДАКТИРОВАТЬ 1

Я сравнил исходный файл с файлом, опубликованным на sharepoint, и файлы идентичны, за исключением даты файла.

РЕДАКТИРОВАТЬ 2

уточнить

На клиенте я вычисляю хеш по

byte[] buff;
using (FileStream fs = System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read))
{
    buff = ConvertStreamToByteBuffer(fs);
}

public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
{
    int b1;
    System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
    while ((b1 = theStream.ReadByte()) != -1)
    {
        tempStream.WriteByte(((byte)b1));
    }
    return tempStream.ToArray();
}

А потом

string md5Local = GetMD5HashFromFile(buff);

На сервере я просто собираю список элементов с помощью CAML-запроса и затем вычисляю

string Md5 = GetMD5HashFromFile(oSPListItemCollection[0].File.OpenBinary());

1 Ответ

0 голосов
/ 02 мая 2012

Подтверждено, Sharepoint вносит изменения в свойства изображения, когда вы регистрируете их в SP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...