HOW TO

Calculate the total size of attachments in a hosted feature layer in ArcGIS Online or Portal for ArcGIS

Last Published: January 18, 2024

Beschreibung

Anlagen können einem Layer in ArcGIS Pro vor der Veröffentlichung in ArcGIS Online oder Portal for ArcGIS hinzugefügt werden. Dies wird in der Dokumentation unter ArcGIS Pro: Hinzufügen oder Entfernen von Dateianlagen beschrieben. Wenn ein Layer mehrere Anlagen enthält, kann es mühsam sein, die Gesamtgröße der Anlagen manuell zu berechnen. Darüber hinaus kann die Gesamtgröße aufgrund der unterschiedlichen Größen auf dem Datenträger, während der Veröffentlichung und durch die Konvertierung von Byte in Kilobyte variieren. In diesem Artikel werden die Schritte zum Berechnen der Gesamtgröße mit der ArcGIS API for Python in einem eigenständigen Python-Skript oder ArcGIS Notebooks beschrieben.

Lösung oder Problemumgehung

  1. Importieren Sie die erforderlichen Module.
import arcgis
from arcgis import GIS
import pandas as pd
  1. Stellen Sie eine Verbindung mit ArcGIS Online oder Portal for ArcGIS her.
#For ArcGIS Online
gis = GIS('https://arcgis.com', 'username', 'password')
print("Connected")

#For Portal for ArcGIS
gis = GIS('https://<machine>.<domain>/<web adaptor name>', 'username', 'password', verify_cert=False)
print("Connected")
  1. Rufen Sie den gewünschten Layer über die ID des gehosteten Feature-Layers ab.
item = '<item_ID>'
layer = gis.content.get(item)
ids = layer.layers[0]
fs = ids.query(where="1=1")
oids = [f.attributes["OBJECTID"] for f in fs.features]
Note:
Edit the index value in 'ids = item.layers[0]' based on the layers that hold the attachments. For example, to calculate the total attachment size in the second layer, replace 0 with 1 in the code.
  1. Geben Sie alle Attribute mit Anlagen aus.
attached = [ids.attachments.get_list(oid=oid) for oid in oids]
print(attached)
  1. Berechnen Sie die Gesamtgröße der Anlagen und zeigen Sie sie in der Ergebniskonsole an.
print("Total size: " + str(ids.attachments.search(as_df=True)['SIZE'].sum()))

#If additional word is unnecessary, the following line can be used:
print(ids.attachments.search(as_df=True)['SIZE'].sum())

Im Folgenden finden Sie ein voll funktionsfähiges Beispielskript und die Ergebniskonsole. Die berechnete Dateigröße wird in Byte angegeben.

import arcgis
from arcgis import GIS
import pandas as pd

gis = GIS('https://arcgis.com', 'user1', 'password1!')
print("Connected")

item = '80d00e2301844ou2435p9284fu87bf'
layer = gis.content.get(item)
ids = layer.layers[0]
fs = ids.query(where="1=1")
oids = [f.attributes["OBJECTID"] for f in fs.features]

attached = [ids.attachments.get_list(oid=oid) for oid in oids]
print (attached)

print("Total size: " + str(ids.attachments.search(as_df=True)['SIZE'].sum()))
Die Ergebniskonsole mit der Gesamtgröße der Anlagen

Artikel-ID: 000031782

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln