Nano Hash - криптовалюты, майнинг, программирование

Список всех вложений, хранящихся в облаке с помощью java

Я разрабатываю демо, и я застрял с этим. Я хочу перечислить в веб-приложении Java все вложения (например, PDF-файлы), но я не могу их получить и перечислить. Я могу получить только общие данные (String, Ints). Есть ли стандартный способ получить и показать ? Я прочитал все сообщения, но ничего не работает.

Здесь я добавляю поставщика с вложением:

public void addVendor(final Vendor vendor, final InputStream inputStream, final long size, final String contentType)
    {
        final Database db = getDb();
        final int id = Integer.valueOf(vendor.get_id()) + 1;
        final Response r1 = db.saveAttachment(inputStream, vendor.getName() + ".txt", contentType, String.valueOf(id), null);
        vendor.setAttachment(r1);
        final Response r = db.post(vendor);

        System.out.println("Vendor created successfully. Id: " + r.getId() + ", rev: " + r.getRev());
        System.out.println("File created successfully. Id: " + r1.getId() + ", rev: " + r1.getRev());

    }

Здесь я пытаюсь получить данные:

public List<Vendor> getAllVendors()
    {
        List<Vendor> Vendors = new ArrayList<Vendor>();
        final List<Vendor> vend2 = new ArrayList<Vendor>();

        //Get db
        final Database db = getDb();
        final InputStream s = null;
        //Get all documents
        Vendors = db.view("_all_docs").includeDocs(true).query(Vendor.class);

        final Database db1 = getDb();

          for (final Vendor vend : Vendors) { 

          final Response r1 = vend.getAttachment(); 

          final int id = Integer.valueOf(vend.get_id()) + 1;

         // Here I am look to the attachment with the _ID and _REV
          final InputStream in = db1.find(r1.getId(), r1.getRev()); vend.setInput(in); vend2.add(vend);

           }

        return Vendors;
    }

В этом последнем коде я намеревался создать новый список со всеми данными о моем поставщике и большим двоичным объектом. Когда я добавляю поставщика (в первой части), я сохраняю «ответ» на вложение в объекте поставщика, поэтому, когда я пытался восстановить, у меня есть данные для работы (_id и _rev).

13.10.2015

  • Пожалуйста, опубликуйте код, чтобы показать, как вы пытаетесь это сделать. 13.10.2015
  • @AndyTurner Я только что опубликовал часть кода реализации DAO. Я точно знаю, что это не лучший способ упорствовать, но после недели попыток это то, что есть :D 13.10.2015

Ответы:


1

Я предполагаю, что вы хотите перечислить все документы, содержащие вложения. Если это так, вы можете создать представление MapReduce, подобное этому:

function(doc) {
  if (doc._attachments) {
    emit(doc._id, null);
  }
}

Затем вы должны вызвать представление, используя что-то вроде этого, чтобы получить список идентификаторов документов, содержащих вложения:

GET /dbname/_design/designdocname/_view/docswithattachments

Приведенный выше запрос GET будет выглядеть примерно так в Java:

  List<Foo> list = db.view("designdocname/docswithattachments")
    .query(Foo.class);
13.10.2015
  • Привет, Крис! Я видел эту инструкцию в ссылке в справке по облачным технологиям, но не знаю, как для создания метода. Я имею в виду, GET или PUT, какую библиотеку мне нужно импортировать? 13.10.2015
  • Удалось ли вам добавить представление MapReduce в базу данных Cloudant, как в приведенном выше примере? Я также предоставил фрагмент java для примера HTTP GET. 13.10.2015
  • Спасибо, Крис, это правильный подход. Будет копать немного больше на этом. 13.10.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..