Author: Roy Wetherall

# Alfr - Working with Content

#### Roy Wetherall

## Introduction

Alfr allows you to work with content directly within the Alfresco repository.

## Setup

First include the alfr library.

    library(alfr)

In order to communicate with the Alfresco repository you must first establish a session connection. The location of the respository is required to do this, along with valid user credentials.

    session <- alf_session("http://localhost:8080", "admin", "admin")

## Uploading Content

All content is stored on a repository node so before we can upload binary content we must first create a node to store it within. In this example we are creating a node called `myFile2.txt` in the folder `test`. `-root-` is used to reference the root repository node.

    my_file <- alf_node.new(session, "-root-", list(name="myFile2.txt", nodeType="cm:content", relativePath="test"))

Now content can be uploaded into the nodes content property where it will be stored in the Alfresco repository.

    my_file <- my_file$content$update("resources/testuploaddoc.txt")

## Reading Content

Get a reference to the node you want to read content from.

    my_file <- alf_node.new(session, "-root-", relativePath="test/myFile2.txt")

Content stored in a repository node can then be read to the client by opening a connection and reading the contents.

    con <- my_file$content$as.file("resources/download.txt") %>% file("r")
    readLines(con)
    close(con)

## Deleting Content

With a reference to the node that you want to delete from the repository.

    alf_node.delete(session, node$id)