I'm trying to programmatically create a media file. Here's what I got so far:
$file_data = file_get_contents('http://www.africau.edu/images/default/sample.pdf');
$file = file_save_data($file_data, 'public://3010.pdf', FILE_EXISTS_REPLACE);
$media = Media::create([
'bundle' => 'file',
'uid' => '0',
'field_media_file' => [
'target_id' => $file->id(),
],
]);
$media->setName('Hello')
->setPublished(TRUE)
->save();
Unfortunately this returns me the following error and the media file doesn't get saved:
Error: Call to a member function getSource() on null in Drupal\media\Entity\Media->getSource() (line 138 of core/modules/media/src/Entity/Media.php).
What am I doing wrong? How can I fix this error?