Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consistently find an asset's ID #4737

Merged
merged 1 commit into from
Jul 12, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 11 additions & 49 deletions source/manual/manage-assets.html.md.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,14 @@ parent: "/manual.html"

## Get an asset's ID

You can get an asset's ID by using it's URL:
If the asset URL starts with `/media`, the asset ID is in the URL.
For example, for the URL `https://assets.publishing.service.gov.uk/media/65f2c1110e1c2f8c4dffaa53/my_file.jpg`, the ID is `65f2c1110e1c2f8c4dffaa53`.

1. Open a Rails console:
For assets that do not start `/media`, obtain the ID by running the following rake task:

```sh
k exec -it deploy/asset-manager -- rails c
```
<%= RunRakeTask.links("asset-manager", "assets:get_id_by_legacy_url_path[SLUG]") %>
ChrisBAshton marked this conversation as resolved.
Show resolved Hide resolved

2. Find the asset:

```ruby
asset = Asset.find_by(legacy_url_path: "/slug")
id = asset.id
```

For example, if the URL is

```
https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/1234/document.pdf
```

the slug would be `/government/uploads/system/uploads/attachment_data/file/1234/document.pdf`
For example, for `https://assets.publishing.service.gov.uk/government/uploads/uploaded/hmrc/realtimepayetools-update-v23.xml"`, you would pass `/government/uploads/uploaded/hmrc/realtimepayetools-update-v23.xml` as the argument.

## Remove an asset

Expand All @@ -43,17 +29,7 @@ If it isn't feasible to remove the asset in the publishing app, you can use
these steps to remove the asset from `assets.publishing.service.gov.uk` in
Asset Manager.

1. [Get the asset ID](#getting-an-asset39s-id). This can be obtained from the URL for most assets, e.g. the asset ID
for `https://assets.publishing.service.gov.uk/media/65f2c1110e1c2f8c4dffaa53/my_file.jpg`
is `65f2c1110e1c2f8c4dffaa53`.

For Whitehall assets that do not start `/media`, the ID can be obtained using the slug,
e.g. for `https://assets.publishing.service.gov.uk/government/uploads/uploaded/hmrc/realtimepayetools-update-v23.xml"`,
run the following in an Asset Manager rails console:

```ruby
WhitehallAsset.find_by(legacy_url_path: "/government/uploads/uploaded/hmrc/realtimepayetools-update-v23.xml").id
```
1. [Get the asset ID](/manual/manage-assets.html#get-an-assets-id).

1. Decide if the asset can be marked as deleted or whether all traces need to be
removed (e.g. if it contains secret information).
Expand Down Expand Up @@ -111,25 +87,11 @@ an associated document wasn't unpublished correctly.
If it isn't possible or desirable to redirect the asset in the publishing app, use these
steps to remove the asset in Asset Manager:

1. Get the asset ID. This can be obtained from the URL, e.g. the asset ID for
`https://assets.publishing.service.gov.uk/media/65f2c1110e1c2f8c4dffaa53/my_file.jpg`
is `65f2c1110e1c2f8c4dffaa53`.

For Whitehall assets that do not start `/media`, the ID can be obtained using the slug,
e.g. for `https://assets.publishing.service.gov.uk/government/uploads/uploaded/hmrc/realtimepayetools-update-v23.xml"`,
run the following in an Asset Manager rails console:

```ruby
WhitehallAsset.find_by(legacy_url_path: "/government/uploads/uploaded/hmrc/realtimepayetools-update-v23.xml").id
```

1. [Get the asset ID](/manual/manage-assets.html#get-an-assets-id).
1. Run the following rake task:

<%= RunRakeTask.links("asset-manager", "assets:redirect[ASSET_ID,REDIRECT_URL]") %>

Also see [getting an asset's ID](#getting-an-asset39s-id) if you have only been
provided the URL.

For Whitehall assets you will have to run:

<%= RunRakeTask.links("whitehall_redirect", "assets:redirect[LEGACY_PATH_URL,REDIRECT_URL]") %>
Expand Down Expand Up @@ -209,10 +171,10 @@ steps to remove the asset in Asset Manager:
k exec -it $POD -- rails c
```

1. Find the asset:
1. Find the asset by its ID (see "[Get an asset's ID](/manual/manage-assets.html#get-an-assets-id)"):

```ruby
asset = Asset.find("asset-id-from-url") # e.g. `57a9c52b40f0b608a700000a`
asset = Asset.find(asset_id)
```

1. Check the asset is what you think it is.
Expand All @@ -232,6 +194,6 @@ steps to remove the asset in Asset Manager:
```

```ruby
attachment_data = Asset.find_by(asset_manager_id: asset-id-from-url).assetable # e.g. 57a9c52b40f0b608a700000a
attachment_data = Asset.find_by(asset_manager_id: asset_id).assetable # e.g. 57a9c52b40f0b608a700000a
attachment_data.update(file_size: 123, number_of_pages: 28) # file_size in bytes
```
```