anchor.diff:  
   <strong><%= modified_date %></strong>
   
  -## Introduction ##
  +##<a id='intro'></a> Introduction ##
   
   The Cloud Controller stores user-uploaded applications, buildpacks, droplets, and application resources in a blobstore. Examples of blobstore providers  include the local file system (Local), AWS S3 (AWS), and OpenStack Swift (OpenStack). This topic describes how to configure the Cloud Controller blobstore to use OpenStack Swift for storage.
   
   The files uploaded by users are stored in private buckets and secured against
   unauthorized access.
  -If a Droplet Execution Agent (DEA) needs to access these files from the Cloud
  -Controller's blobstore, the Cloud Controller generates temporary URLs pointing
  -to the required files and provides them to the DEA.
  -The DEA can use the URLs to download the files, execute staging tasks, then deliver back the results. To help ensure data security, the generated URLs are valid for a limited amount of time.
   
  -## OpenStack Prerequisites ##
  +If a Diego [cell](../../concepts/architecture/index.html#diego-cell) needs to access these files from the Cloud Controller's blobstore, the Cloud Controller generates temporary URLs pointing to the required files and provides them to the Diego cell.
  +The cell can use the URLs to download the files, execute staging tasks, then deliver back the results. To help ensure data security, the generated URLs are valid for a limited amount of time.
  +
  +<p class="note"><strong>Note</strong>: In older versions of Cloud Foundry that use the Droplet Execution Agent (DEA) architecture, a DEA node hosts applications instead of a Diego cell. See the <a href="../../concepts/diego/dea-vs-diego.html">Differences Between DEA and Diego Architectures</a> topic.</p>
  +
  +##<a id='prereq'></a> OpenStack Prerequisites ##
   
   To use the temporary URL feature, the OpenStack user needs the **ResellerAdmin** role.
   You must configure an [X-Account-Meta-Temp-URL-Key](http://docs.openstack.org/havana/config-reference/content/object-storage-tempurl.html) for your OpenStack account to enable temporary URL generation. From a terminal window, follow the steps below to configure an X-Account-Meta-Temp-URL-Key.
  
positive.code: 1. Replace TENANT, USER, and PASSWORD in the command below. Run this command to
  retrieve an auth token.
  
      ```
      curl -s -H 'Content-type: application/json' -d '{"auth": {"tenantName":     "TENANT", "passwordCredentials":
          {"username": "USER", \"password": "PASSWORD"}}}' https://auth.example.com:5000/v2.0/tokens
              | python -mjson.tool
      ```
  
  1. Replace YOUR-AUTH-TOKEN, ACCOUNT-META-TEMP-URL-KEY, and YOUR-TENANT-ID in the command below. Run this command to assign an Account-Meta-Temp-URL-Key to your OpenStack account.
  
      ```
      curl -i -X POST -H 'X-Auth-Token:YOUR-AUTH-TOKEN' -H 'X-Account-Meta-Temp-URL-Key:ACCOUNT-META-TEMP-URL-KEY' \
      https://swift.example.com/v1/AUTH_YOUR-TENANT-ID
      ```
  
  ## Configure BOSH Deployment Manifest ##
  
  You must provide the OpenStack credentials in your BOSH deployment manifest.
  The following manifest snippet shows the required entries in the properties section of the deployment manifest. This example uses the OpenStack fog provider.
  
negative.code:       fog_connection: *fog_connection
  ```
  
  ##<a id='links'></a> Links ##
  
  * [OpenStack Swift Temporary URL Documentation](http://docs.openstack.org/trunk/config-reference/content/object-storage-tempurl.html)
  * [Fog gem](http://fog.io/)
  