Reference/location to attachments in Jira cloud project
Asked by Kavitha Chandrasekaran:

Hi All

The problem scenario is

1) An import from an external CSV source to Jira cloud project (Project A) was done few months ago. The rest api access for images was provided by the external company and the project was imported.

2) Since then, the access to images has been terminated.

3) In Project A, I noticed some formatting issues in the Description field.

4) I have the source CSV file. But if I reimport the CSV to a new Jira project (Project B), the images are not downloaded to Jira issues.

The images are available in Project A. I will be able to replace the prefix of image URL in CSV file, if I am able to find out where the images from Project A are stored.

Any help appreciated.

Thank You


Answers:
author: Kavitha Chandrasekaran
body: [@L?gia Zanchet](/t5/user/viewprofilepage/user-id/4830848) Below are the steps I followed and documented. I will publish in a separate Article too.

**Migration/Data Import:**

For anyone familiar with data migration in the context of Jira/Database/ Excel, etc there are basically two key areas.

* Input Source
* Output (Destination where data needs to be imported)

In my example where the import was done from a csv file to a new Jira project, the steps I followed in a successful/clean import (after having several hiccups without a process ) are below:

* Source Data Review: Understanding your input.
* Destination/Jira Project requirements.
  * Mapping and cleansing input source
  * Prepare destination.
* Test migration.
* Run migration.

**Source Data Review:**

* How many rows of data?
* What columns/fields have data and what columns/fields have none.
* Use Excel formula for the column to identify this.

=COUNTA(A2:A101).

This is to count all non-empty cells between A2 and A101, assuming you have 100 rows of data.

* Identify the Issue Types
* Identify the statuses
* Identify the labels, components, Fix versions

Just understand your input data. It will help you with making decision for migration.

**Destination/Jira Project requirements:**

* What fields I need to import to my Jira project? This is the first question you want to answer looking at all the fields that have one or more values in the CSV file.

* Does the field add value? This is the good opportunity to not carry over data that is not required. I did not migrate watchers, assignee, estimates etc, as that were not of value to my requirement.

* Delete the columns that you do not require. This will help keep your CSV clean and lean. Otherwise there will be so many columns to work with.

* One easy way to review the columns to copy the row which has the column name and paste in a new tab with Data transpose. This will list the fields in a single column and is more visual to review and decide.

Sample table to do mapping between Source and Destination

|-------------------------|-------------------------|-------------------------------|
| **Field Name (Source)** | **Field Name (Target)** | **Comment**                   |
| Assignee                | Assignee                | Do not migrate                |
| Assignee Id             | Assignee Id             | Do not migrate                |
| Comment                 | Comment                 | Migrate                       |
| Components              | Components              | Required components created   |
| Created                 | Created                 | Migrate                       |
| Creator                 | Creator                 | Do not migrate. Delete column |
| Creator Id              | Creator Id              | Do not migrate. Delete column |
|                         |                         |                               |
|                         |                         |                               |

**Issue Types mapping:**

Example mapping:

|-----------------------|-----------------------|
| **Source Issue Type** | **Target Issue Type** |
| Activity              | Task                  |
| Bug                   | Bug                   |
| Core Task             | Task                  |
| Design                | Task                  |
| Epic                  | Epic                  |
| Improvement           | Task                  |
| Story                 | Story                 |
| Sub-task              | Sub-task              |
| Task                  | Task                  |

I chose to map the issue types and workflow status and update the source CSV to limit the mapping decisions I need to make at the time of import in Jira.

But you will have an option to make these mapping decisions at the time of import.

**Workflow/Status mapping:**

|----------------------------|----------------------------------------------|
| **Source Workflow Status** | **Destination Jira Project Workflow Status** |
| Open/Ready                 | TO DO                                        |
| In Progress                | DEVELOPMENT                                  |
| Blocker                    | BLOCKED                                      |
| Needs Review -- UAT        | READY FOR UAT                                |
| UAT Ready                  | READY FOR UAT                                |
| UAT TEST                   | IN UAT                                       |
| In UAT Testing             | IN UAT                                       |
| Need Review -- Prod        | PRODUCTION VERIFICATION                      |
| Client Approved or Closed  | DONE                                         |

* Update the workflow status/create new workflow in the Jira project to the required set of statuses
* In the source CSV, do a Find and Replace All to match to the required Target Statuses.

**Components and Labels**

**Options**

1. Create components/labels in the project you are importing to or
2. the import process will create the components or
3. a combination of some components created and some not created will work too.

All three options have been tested.

**Parent-Child Links**

To import parent-child links, make sure the below fields are selected for import.

Jira sorts and manages the order of Parent-child issues. The file doesn't have to be sorted by EPIC first.

**User IDs**

I did not migrate user ids.

**HTML Formatted Text**

I had issues with importing HTML formatted text initially.

Just leave the 'Map field value' unchecked

When this is checked, the import gives you an option to review all values to be mapped for this field. I left this unchecked for all fields. If there is a discrepancy, for example if a status is not present in destination, the import process will force you to map the field to a value that is available.

**Image Import**

When importing images, Browse Project permission to be allowed as Public for the Jira project where the images are stored at source. There is another option to use Userid, password in the CSV. But I used the Browse projects permission method.

**Date format**

Choose/update to the right date format setting when you commence the import.

**Field to be mapped not available in the list of fields in the dropdown**

If you do not see the field, check field configurations, context etc to make sure the field is available for the destination project.

**Test Migration:**

I ran the import with a small sample to check if images, dates and other values are imported correctly.

I had 'delete issues' permission and deleted the issues and re-ran the import few times until I got everything right. But doing the pre-work and mapping helped run the import more smoothly and identify and address gaps easily.

**Some useful links**

<https://support.atlassian.com/jira-cloud-administration/docs/import-data-from-a-csv-file/>

<https://confluence.atlassian.com/jirakb/importing-attachments-via-csv-file-fails-with-exception-1004939288.html>

comments: author: L?gia Zanchet
body: Excellent and detailed explanation, [@Kavitha Chandrasekaran](/t5/user/viewprofilepage/user-id/553226)   

Thank you so much for sharing it with our community


author: L?gia Zanchet
body: Hello Kavitha  

Thank you for your comment.

When importing attachments using a CSV file, you need to specify the URL of your attachment

You can refer to our[documentation on importing attachments](https://support.atlassian.com/jira-cloud-administration/docs/import-data-from-a-csv-file/#:~:text=Importing%20attachments)

Based on what you described, the attachments are still visible in Project A. You can export that project and use the attachment column from that CSV in your source.   

Could you please try that option and let us know?   

Thank you

comments: author: Kavitha Chandrasekaran
body: Thanks [@L?gia Zanchet](/t5/user/viewprofilepage/user-id/4830848) I will certainly give this a try and post the update here. Appreciate you taking time to reply.


author: Kavitha Chandrasekaran
body: Hi [@L?gia Zanchet](/t5/user/viewprofilepage/user-id/4830848)   

The exported URL looks like the one below. I have updated the domain name to not make it public. But otherwise this is exactly how the exported URL looks like from Project A.

I tried using one issue import.

I copied this to the Attachment column to be imported to Project b.I tried several combinations of this format but getting errors like 'Error parsing image' etc. The issue is being imported. Just the attachment is failing. Any help appreciated. Thanks!

01/Feb/23 12:17 PM;ug:4477d54e-1e61-4c0f-890d-a4315a19162b;image-20230201-011728.png;<https://abcdomain.atlassian.net/rest/api/3/attachment/content/21913>


author: Kavitha Chandrasekaran
body: If I access the URL <https://abcdomain.atlassian.net/rest/api/3/attachment/content/21913> from a browser, the image gets downloaded successfully. That says that there is no access issue and the image is present.


author: Kavitha Chandrasekaran
body: [@L?gia Zanchet](/t5/user/viewprofilepage/user-id/4830848) I got it to work. I had to change the Browse Projects permission in the Source project that has images to Public for the import to access the images. Thanks for your help!! I learned a lot in this process and will be putting together an article for Atlassian community.

comments: author: L?gia Zanchet
body: Hello [@Kavitha Chandrasekaran](/t5/user/viewprofilepage/user-id/553226) Happy to hear you were able to migrate the attachments. Thank you so much for the information; if possible, once you have created the article, could you please share it on this post, too? That would be awesome.


Tags: cloud

jira-cloud